|
@@ -3,7 +3,7 @@
|
|
|
# Server Management Script
|
|
# Server Management Script
|
|
|
# Author: Daniel Gibbs
|
|
# Author: Daniel Gibbs
|
|
|
# Website: http://danielgibbs.co.uk
|
|
# Website: http://danielgibbs.co.uk
|
|
|
-# Version: 031014
|
|
|
|
|
|
|
+# Version: 061014
|
|
|
|
|
|
|
|
#### Variables ####
|
|
#### Variables ####
|
|
|
|
|
|
|
@@ -70,7 +70,7 @@ consolelogdate="${consolelogdir}/${servicename}-console-$(date '+%d-%m-%Y-%H-%M-
|
|
|
# what you are doing
|
|
# what you are doing
|
|
|
|
|
|
|
|
fn_scriptlog(){
|
|
fn_scriptlog(){
|
|
|
- echo -e "$(date '+%b %d %H:%M:%S') ${servicename}: '$1'" >> ${scriptlog}
|
|
|
|
|
|
|
+ echo -e "$(date '+%b %d %H:%M:%S') ${servicename}: ${1}" >> ${scriptlog}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
# [ FAIL ]
|
|
# [ FAIL ]
|
|
@@ -411,6 +411,8 @@ if [ -f gsquery.py ]; then
|
|
|
port=$((${gameport} + 1))
|
|
port=$((${gameport} + 1))
|
|
|
elif [ "${engine}" == "spark" ]; then
|
|
elif [ "${engine}" == "spark" ]; then
|
|
|
port=$((${port} + 1))
|
|
port=$((${port} + 1))
|
|
|
|
|
+ elif [ "${engine}" == "realvirtuality" ]; then
|
|
|
|
|
+ port=${queryport}
|
|
|
fi
|
|
fi
|
|
|
fn_printinfo "Monitoring ${servicename}: Detected gsquery.py"
|
|
fn_printinfo "Monitoring ${servicename}: Detected gsquery.py"
|
|
|
fn_scriptlog "Detected gsquery.py"
|
|
fn_scriptlog "Detected gsquery.py"
|
|
@@ -418,7 +420,6 @@ if [ -f gsquery.py ]; then
|
|
|
fn_printdots "Monitoring ${servicename}: Querying port: ${ip}:${port}: QUERYING"
|
|
fn_printdots "Monitoring ${servicename}: Querying port: ${ip}:${port}: QUERYING"
|
|
|
fn_scriptlog "Querying port: ${ip}:${port}: QUERYING"
|
|
fn_scriptlog "Querying port: ${ip}:${port}: QUERYING"
|
|
|
sleep 1
|
|
sleep 1
|
|
|
- echo "./gsquery.py -a ${ip} -p ${port} -e ${engine} 2>&1"
|
|
|
|
|
serverquery=$(./gsquery.py -a ${ip} -p ${port} -e ${engine} 2>&1)
|
|
serverquery=$(./gsquery.py -a ${ip} -p ${port} -e ${engine} 2>&1)
|
|
|
exitcode=$?
|
|
exitcode=$?
|
|
|
if [ "${exitcode}" == "1" ]||[ "${exitcode}" == "2" ]||[ "${exitcode}" == "3" ]||[ "${exitcode}" == "4" ]; then
|
|
if [ "${exitcode}" == "1" ]||[ "${exitcode}" == "2" ]||[ "${exitcode}" == "3" ]||[ "${exitcode}" == "4" ]; then
|
|
@@ -484,7 +485,8 @@ fn_printdots "Monitoring ${servicename}: ${servername}"
|
|
|
fn_scriptlog "Monitoring ${servername}"
|
|
fn_scriptlog "Monitoring ${servername}"
|
|
|
sleep 1
|
|
sleep 1
|
|
|
if [ ! -f ${lockselfname} ]; then
|
|
if [ ! -f ${lockselfname} ]; then
|
|
|
- fn_printinfo "Monitoring ${servicename}: No lock file found: Monitor disabled"
|
|
|
|
|
|
|
+ fn_printinfo "Monitoring ${servicename}: Monitor disabled: No lock file found"
|
|
|
|
|
+ fn_scriptlog "Monitor disabled: No lock file found"
|
|
|
sleep 1
|
|
sleep 1
|
|
|
echo -en "\n"
|
|
echo -en "\n"
|
|
|
echo "To enable monitor run ${selfname} start"
|
|
echo "To enable monitor run ${selfname} start"
|
|
@@ -594,6 +596,7 @@ fn_parms
|
|
|
fn_logmanager
|
|
fn_logmanager
|
|
|
tmuxwc=$(tmux list-sessions 2>&1|awk '{print $1}'|grep -v failed|grep -E "^${servicename}:"|wc -l)
|
|
tmuxwc=$(tmux list-sessions 2>&1|awk '{print $1}'|grep -v failed|grep -E "^${servicename}:"|wc -l)
|
|
|
if [ ${tmuxwc} -eq 0 ]; then
|
|
if [ ${tmuxwc} -eq 0 ]; then
|
|
|
|
|
+ fn_scriptlog "Rotating log files"
|
|
|
if [ "${engine}" == "unreal2" ]; then
|
|
if [ "${engine}" == "unreal2" ]; then
|
|
|
mv "${gamelog}" "${gamelogdate}"
|
|
mv "${gamelog}" "${gamelogdate}"
|
|
|
fi
|
|
fi
|
|
@@ -601,8 +604,8 @@ if [ ${tmuxwc} -eq 0 ]; then
|
|
|
mv "${consolelog}" "${consolelogdate}"
|
|
mv "${consolelog}" "${consolelogdate}"
|
|
|
fi
|
|
fi
|
|
|
fn_printdots "Starting ${servicename}: ${servername}"
|
|
fn_printdots "Starting ${servicename}: ${servername}"
|
|
|
-sleep 1
|
|
|
|
|
fn_scriptlog "Starting ${servername}"
|
|
fn_scriptlog "Starting ${servername}"
|
|
|
|
|
+sleep 1
|
|
|
if [ ${tmuxwc} -eq 1 ]; then
|
|
if [ ${tmuxwc} -eq 1 ]; then
|
|
|
fn_printinfo "Starting ${servicename}: ${servername} is already running"
|
|
fn_printinfo "Starting ${servicename}: ${servername} is already running"
|
|
|
fn_scriptlog "${servername} is already running"
|
|
fn_scriptlog "${servername} is already running"
|
|
@@ -613,13 +616,19 @@ fi
|
|
|
# Create lock file
|
|
# Create lock file
|
|
|
date > "${rootdir}/${lockselfname}"
|
|
date > "${rootdir}/${lockselfname}"
|
|
|
cd "${executabledir}"
|
|
cd "${executabledir}"
|
|
|
-tmux new-session -d -s ${servicename} "${executable} ${parms}"
|
|
|
|
|
|
|
+tmux new-session -d -s ${servicename} "${executable} ${parms}" 2> ${scriptlogdir}/.${servicename}-tmux-error.tmp
|
|
|
tmux pipe-pane -o -t ${servicename} "exec cat >> '${consolelog}'"
|
|
tmux pipe-pane -o -t ${servicename} "exec cat >> '${consolelog}'"
|
|
|
sleep 1
|
|
sleep 1
|
|
|
tmuxwc=$(tmux list-sessions 2>&1|awk '{print $1}'|grep -E "^${servicename}:"|wc -l)
|
|
tmuxwc=$(tmux list-sessions 2>&1|awk '{print $1}'|grep -E "^${servicename}:"|wc -l)
|
|
|
if [ ${tmuxwc} -eq 0 ]; then
|
|
if [ ${tmuxwc} -eq 0 ]; then
|
|
|
- fn_printfail "Starting ${servicename}: Failed to start ${servername}"
|
|
|
|
|
|
|
+ fn_printfailnl "Starting ${servicename}: Failed to start ${servername}"
|
|
|
|
|
+ echo -en " Check log files: ${rootdir}/log"
|
|
|
fn_scriptlog "failed to start ${servername}"
|
|
fn_scriptlog "failed to start ${servername}"
|
|
|
|
|
+ if [ -a ${scriptlogdir}/.${servicename}-tmux-error.tmp ]; then
|
|
|
|
|
+ fn_scriptlog "tmux returned the following error"
|
|
|
|
|
+ cat ${scriptlogdir}/.${servicename}-tmux-error.tmp >> ${scriptlog}
|
|
|
|
|
+ rm ${scriptlogdir}/.${servicename}-tmux-error.tmp
|
|
|
|
|
+ fi
|
|
|
else
|
|
else
|
|
|
fn_printok "Starting ${servicename}: ${servername}"
|
|
fn_printok "Starting ${servicename}: ${servername}"
|
|
|
fn_scriptlog "Started ${servername}"
|
|
fn_scriptlog "Started ${servername}"
|
|
@@ -628,7 +637,7 @@ sleep 1
|
|
|
echo -en "\n"
|
|
echo -en "\n"
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-fn_details(){
|
|
|
|
|
|
|
+fn_jc2details(){
|
|
|
fn_autoip
|
|
fn_autoip
|
|
|
servername=$(grep -s hostname "${servercfgfullpath}"|sed 's/hostname //g'|sed 's/"//g')
|
|
servername=$(grep -s hostname "${servercfgfullpath}"|sed 's/hostname //g'|sed 's/"//g')
|
|
|
pid=$(tmux list-sessions 2>&1|awk '{print $1}'|grep -E "^${servicename}:"|wc -l)
|
|
pid=$(tmux list-sessions 2>&1|awk '{print $1}'|grep -E "^${servicename}:"|wc -l)
|
|
@@ -803,7 +812,7 @@ fn_getquery
|
|
|
echo ""
|
|
echo ""
|
|
|
fn_header
|
|
fn_header
|
|
|
sleep 1
|
|
sleep 1
|
|
|
- fn_details
|
|
|
|
|
|
|
+ fn_jc2details
|
|
|
sleep 1
|
|
sleep 1
|
|
|
echo "================================="
|
|
echo "================================="
|
|
|
echo "Install Complete!"
|
|
echo "Install Complete!"
|
|
@@ -850,4 +859,4 @@ case "$1" in
|
|
|
echo "Usage: $0 {start|stop|restart|update|update-restart|validate|validate-restart|monitor|email-test|details|backup|console|debug|install}"
|
|
echo "Usage: $0 {start|stop|restart|update|update-restart|validate|validate-restart|monitor|email-test|details|backup|console|debug|install}"
|
|
|
exit 1;;
|
|
exit 1;;
|
|
|
esac
|
|
esac
|
|
|
-exit
|
|
|
|
|
|
|
+exit
|