|
|
@@ -3,7 +3,7 @@
|
|
|
# Server Management Script
|
|
|
# Author: Daniel Gibbs
|
|
|
# Website: http://danielgibbs.co.uk
|
|
|
-# Version: 110813
|
|
|
+# Version: 180813
|
|
|
|
|
|
#### Variables ####
|
|
|
|
|
|
@@ -48,16 +48,43 @@ fi
|
|
|
}
|
|
|
|
|
|
fn_syscheck(){
|
|
|
-if [ ! -e ${filesdir} ];then
|
|
|
- echo -e "[\e[0;31m FAIL \e[0;39m] Cannot access ${filesdir}: No such directory"
|
|
|
+if [ ! -e ${systemdir} ];then
|
|
|
+ echo -e "[\e[0;31m FAIL \e[0;39m] Cannot access ${systemdir}: No such directory"
|
|
|
exit
|
|
|
fi
|
|
|
}
|
|
|
|
|
|
+fn_serverquery(){
|
|
|
+# uses serverquery.py to directly query the server
|
|
|
+# detects if the server locks up
|
|
|
+if [ -f serverquery.py ];then
|
|
|
+ echo -e "[\e[0;36m INFO \e[0;39m] serverquery.py detected"
|
|
|
+ echo -e "$( date '+%b %d %H:%M:%S') ${servicename}: serverquery.py detected" >> ${logfile}
|
|
|
+ echo -e "[\e[0;32m OK \e[0;39m] Querying ${servicename}: ${servername}: QUERYING"
|
|
|
+ echo -e "$( date '+%b %d %H:%M:%S') ${servicename}: Querying ${servername}: QUERYING" >> ${logfile}
|
|
|
+ serverquery=`./serverquery.py 127.0.0.1 ${port} 2>&1`
|
|
|
+ sleep 1
|
|
|
+ if [ "${serverquery}" = "ERROR 1" ]||[ "${serverquery}" = "ERROR 2" ]||[ "${serverquery}" = "ERROR 3" ];then
|
|
|
+ echo -e "[\e[0;31m FAIL \e[0;39m] Querying ${servicename}: ${servername}: ${serverquery}"
|
|
|
+ echo -e "$( date '+%b %d %H:%M:%S') ${servicename}: Querying ${servername}: ${serverquery}" >> ${logfile}
|
|
|
+ sleep 1
|
|
|
+ echo -e "[\e[1;33m WARN \e[0;39m] ${servicename}: Monitor detected ${servername} has locked up!"
|
|
|
+ echo -e "$( date '+%b %d %H:%M:%S') ${servicename}: Monitor detected ${servername} has locked up!" >> ${logfile}
|
|
|
+ sleep 1
|
|
|
+ fn_restartserver
|
|
|
+ else
|
|
|
+ echo -e "[\e[0;32m OK \e[0;39m] Querying ${servicename}: ${servername}: ${serverquery}"
|
|
|
+ echo -e "$( date '+%b %d %H:%M:%S') ${servicename}: Querying ${servername}: ${serverquery}" >> ${logfile}
|
|
|
+ sleep 1
|
|
|
+ fi
|
|
|
+fi
|
|
|
+}
|
|
|
+
|
|
|
fn_runcheck(){
|
|
|
# already running check
|
|
|
pidwc=`screen -ls |grep ${servicename} |awk -F . '{print $1}'|awk '{print $1}'|wc -l`
|
|
|
if [ ${pidwc} -eq 1 ];then
|
|
|
+ fn_serverquery
|
|
|
echo -e "[\e[0;36m INFO \e[0;39m] ${servicename}: ${servername} is already running"
|
|
|
echo -e "$( date '+%b %d %H:%M:%S') ${servicename}: ${servername} is already running" >> ${logfile}
|
|
|
exit
|
|
|
@@ -134,7 +161,7 @@ if [ "${emailnotification}" = "on" ];then
|
|
|
failurereason="Testing ${servicename} email notification"
|
|
|
actiontaken="Sent test email...hello is this thing on?"
|
|
|
fn_emailnotification
|
|
|
-else
|
|
|
+else
|
|
|
echo -e "[\e[0;31m FAIL \e[0;39m] Email notificaion not enabled"
|
|
|
echo -e "$( date '+%b %d %H:%M:%S') ${servicename}: Email notificaion not enabled" >> ${logfile}
|
|
|
fi
|
|
|
@@ -273,7 +300,7 @@ mkdir $compressedmapsdir
|
|
|
rm -rfv ${filesdir}/Maps/*.uz2
|
|
|
cd ${systemdir}
|
|
|
./ucc-bin compress ../Maps/* --nohomedir
|
|
|
-mv -fv ${filesdir}/Maps/*.uz2 $compressedmapsdir
|
|
|
+mv -fv ${filesdir}/Maps/*.uz2 $compressedmapsdir
|
|
|
}
|
|
|
|
|
|
#
|
|
|
@@ -335,7 +362,7 @@ done
|
|
|
fn_install(){
|
|
|
fn_rootcheck
|
|
|
fn_header
|
|
|
-if [ -d ${filesdir} ];then
|
|
|
+if [ -d ${systemdir} ];then
|
|
|
echo "${gamename} Server is already installed here:"
|
|
|
pwd
|
|
|
echo ""
|
|
|
@@ -353,7 +380,7 @@ echo "Install Directory:"
|
|
|
pwd
|
|
|
echo ""
|
|
|
while true; do
|
|
|
- read -p "Continue [y/N]" yn
|
|
|
+ read -p "Continue [y/N]" yn
|
|
|
case $yn in
|
|
|
[Yy]* ) break;;
|
|
|
[Nn]* ) echo Exiting; return 1 ;;
|
|
|
@@ -389,36 +416,35 @@ echo "================================="
|
|
|
echo ""
|
|
|
echo "Configuring ${gamename} Server"
|
|
|
echo "================================="
|
|
|
+ sleep 1
|
|
|
echo "Copying ${systemdir}/ut2004.ini to ${systemdir}/${ini}"
|
|
|
cp ${systemdir}/UT2004.ini ${systemdir}/${ini}
|
|
|
sleep 1
|
|
|
echo ""
|
|
|
- echo "Applying WebAdmin CharSet fix!"
|
|
|
- echo "http://forums.tripwireinteractive.com/showpost.php?p=442340&postcount=1"
|
|
|
+ echo "Creating log directory"
|
|
|
+ mkdir -v ${logdir}
|
|
|
sleep 1
|
|
|
echo ""
|
|
|
echo "Applying WebAdmin ut2003.css fix!"
|
|
|
echo "http://forums.tripwireinteractive.com/showpost.php?p=585435&postcount=13"
|
|
|
- sleep 1
|
|
|
- echo ""
|
|
|
- echo "Setting WebAdmin port to 8077"
|
|
|
+ sed -i 's/none}/none;/g' ${filesdir}/Web/ServerAdmin/ut2003.css
|
|
|
+ sed -i 's/underline}/underline;/g' ${filesdir}/Web/ServerAdmin/ut2003.css
|
|
|
sleep 1
|
|
|
echo ""
|
|
|
echo "Setting WebAdmin username and password"
|
|
|
- sleep 1
|
|
|
- echo ""
|
|
|
- echo "Enabling Web Interface"
|
|
|
- sleep 2
|
|
|
- sed -i 's/CharSet="iso-8859-1"/CharSet="utf-8"/g' ${systemdir}/UWeb.int
|
|
|
- sed -i 's/none}/none;/g' ${filesdir}/Web/ServerAdmin/ut2003.css
|
|
|
- sed -i 's/underline}/underline;/g' ${filesdir}/Web/ServerAdmin/ut2003.css
|
|
|
sed -i 's/AdminName=/AdminName=admin/g' ${systemdir}/${ini}
|
|
|
sed -i 's/AdminPassword=/AdminPassword=utpass/g' ${systemdir}/${ini}
|
|
|
+ sleep 1
|
|
|
+ echo ""
|
|
|
+ echo "Enabling WebAdmin"
|
|
|
sed -i 's/bEnabled=False/bEnabled=True/g' ${systemdir}/${ini}
|
|
|
+ sleep 1
|
|
|
+ echo ""
|
|
|
+ echo "Setting WebAdmin port to 8077"
|
|
|
sed -i 's/ListenPort=80/ListenPort=8077/g' ${systemdir}/${ini}
|
|
|
- mkdir ${logdir}
|
|
|
- cd ${rootdir}
|
|
|
+ sleep 1
|
|
|
echo ""
|
|
|
+ cd ${rootdir}
|
|
|
echo "Default Settings"
|
|
|
echo "=============================="
|
|
|
echo "WebAdmin Details:"
|
|
|
@@ -438,6 +464,7 @@ echo "================================="
|
|
|
echo ""
|
|
|
echo "To start server type:"
|
|
|
echo "${selfname} start"
|
|
|
+ echo ""
|
|
|
}
|
|
|
|
|
|
case "$1" in
|
|
|
@@ -454,7 +481,7 @@ case "$1" in
|
|
|
debug)
|
|
|
fn_debugserver;;
|
|
|
map-compressor)
|
|
|
- fn_compressmaps;;
|
|
|
+ fn_compressmaps;;
|
|
|
email-test)
|
|
|
fn_emailtest;;
|
|
|
*)
|