Przeglądaj źródła

kfserver/ut2k4server logfile improvement

fixed issue ${logfile} is not defined #131
General code tidy up. Trimmed training spaces and moved fn_scriptlog
outputs under there respective log messages to screen instead of waiting
1 second to output to log file
Daniel Gibbs 11 lat temu
rodzic
commit
027afd2b3e
2 zmienionych plików z 95 dodań i 59 usunięć
  1. 46 30
      KillingFloor/kfserver
  2. 49 29
      UnrealTournament2004/ut2k4server

+ 46 - 30
KillingFloor/kfserver

@@ -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: 100914
+# Version: 170914
 
 
 #### Variables ####
 #### Variables ####
 
 
@@ -41,24 +41,27 @@ ip="0.0.0.0"
 
 
 # Logging
 # Logging
 logdays="7"
 logdays="7"
+gamelogdir="${rootdir}/log/server"
 scriptlogdir="${rootdir}/log/script"
 scriptlogdir="${rootdir}/log/script"
 consolelogdir="${rootdir}/log/console"
 consolelogdir="${rootdir}/log/console"
 
 
+gamelog="${gamelogdir}/${servicename}-game.log"
 scriptlog="${scriptlogdir}/${servicename}-script.log"
 scriptlog="${scriptlogdir}/${servicename}-script.log"
 consolelog="${consolelogdir}/${servicename}-console.log"
 consolelog="${consolelogdir}/${servicename}-console.log"
 emaillog="${scriptlogdir}/${servicename}-email.log"
 emaillog="${scriptlogdir}/${servicename}-email.log"
 
 
+gamelogdate="${gamelogdir}/${servicename}-game-$(date '+%d-%m-%Y-%H-%M-%S').log"
 scriptlogdate="${scriptlogdir}/${servicename}-script-$(date '+%d-%m-%Y-%H-%M-%S').log"
 scriptlogdate="${scriptlogdir}/${servicename}-script-$(date '+%d-%m-%Y-%H-%M-%S').log"
 consolelogdate="${consolelogdir}/${servicename}-console-$(date '+%d-%m-%Y-%H-%M-%S').log"
 consolelogdate="${consolelogdir}/${servicename}-console-$(date '+%d-%m-%Y-%H-%M-%S').log"
 
 
 # Start Variables
 # Start Variables
 fn_parms(){
 fn_parms(){
 defaultmap="KF-BioticsLab.rom"
 defaultmap="KF-BioticsLab.rom"
-parms="server ${defaultmap}?game=KFmod.KFGameType?VACSecured=true -nohomedir ini=${ini} log=${logfile}"
+parms="server ${defaultmap}?game=KFmod.KFGameType?VACSecured=true -nohomedir ini=${ini} log=${gamelog}"
 
 
 # Start Variables for Objective mode
 # Start Variables for Objective mode
 #defaultmap="KFO-Steamland"
 #defaultmap="KFO-Steamland"
-#parms="server ${defaultmap}?Game=KFStoryGame.KFStoryGame?VACSecured=true -nohomedir ini=${ini} log=${logfile}"
+#parms="server ${defaultmap}?Game=KFStoryGame.KFStoryGame?VACSecured=true -nohomedir ini=${ini} log=${gamelog}"
 }
 }
 
 
 ##### Script #####
 ##### Script #####
@@ -108,7 +111,7 @@ fn_printwarn(){
 fn_printwarnnl(){
 fn_printwarnnl(){
 	echo -e "\r\033[K[\e[1;33m WARN \e[0;39m] $@"
 	echo -e "\r\033[K[\e[1;33m WARN \e[0;39m] $@"
 }
 }
-	
+
 # [ .... ]
 # [ .... ]
 fn_printdots(){
 fn_printdots(){
     echo -en "\r\033[K[ .... ] $@"
     echo -en "\r\033[K[ .... ] $@"
@@ -153,28 +156,40 @@ fi
 # log manager will active if finds logs older than ${logdays}
 # log manager will active if finds logs older than ${logdays}
 if [ `find "${scriptlogdir}"/* -mtime +${logdays}|wc -l` -ne "0" ]; then
 if [ `find "${scriptlogdir}"/* -mtime +${logdays}|wc -l` -ne "0" ]; then
 	fn_printdots "Starting log cleaner"
 	fn_printdots "Starting log cleaner"
-	sleep 1	
+	sleep 1
 	fn_printok "Starting log cleaner"
 	fn_printok "Starting log cleaner"
-	sleep 1	
 	fn_scriptlog "Starting log cleaner"
 	fn_scriptlog "Starting log cleaner"
 	sleep 1
 	sleep 1
 	echo -en "\n"
 	echo -en "\n"
 	fn_printinfo "Removing logs older than ${logdays} days"
 	fn_printinfo "Removing logs older than ${logdays} days"
-	sleep 1
-	echo -en "\n"
 	fn_scriptlog "Removing logs older than ${logdays} days"
 	fn_scriptlog "Removing logs older than ${logdays} days"
 	sleep 1
 	sleep 1
+	echo -en "\n"
+	if [ "${engine}" == "unreal2" ]; then
+		find "${gamelogdir}"/* -mtime +${logdays}|tee >> "${scriptlog}"
+	fi
 	find "${scriptlogdir}"/* -mtime +${logdays}|tee >> "${scriptlog}"
 	find "${scriptlogdir}"/* -mtime +${logdays}|tee >> "${scriptlog}"
 	find "${consolelogdir}"/* -mtime +${logdays}|tee >> "${scriptlog}"
 	find "${consolelogdir}"/* -mtime +${logdays}|tee >> "${scriptlog}"
+	if [ "${engine}" == "unreal2" ]; then
+		gamecount=$(find "${scriptlogdir}"/* -mtime +${logdays}|wc -l)
+	fi
 	scriptcount=$(find "${scriptlogdir}"/* -mtime +${logdays}|wc -l)
 	scriptcount=$(find "${scriptlogdir}"/* -mtime +${logdays}|wc -l)
 	consolecount=$(find "${consolelogdir}"/* -mtime +${logdays}|wc -l)
 	consolecount=$(find "${consolelogdir}"/* -mtime +${logdays}|wc -l)
 	count=$((${scriptcount} + ${consolecount}))
 	count=$((${scriptcount} + ${consolecount}))
+	if [ "${engine}" == "unreal2" ]; then
+		count=$((${scriptcount} + ${consolecount} + ${gamecount}))
+	else
+		count=$((${scriptcount} + ${consolecount}))
+	fi
+	if [ "${engine}" == "unreal2" ]; then
+		find "${gamelogdir}"/* -mtime +${logdays} -exec rm {} \;
+	fi
 	find "${scriptlogdir}"/* -mtime +${logdays} -exec rm {} \;
 	find "${scriptlogdir}"/* -mtime +${logdays} -exec rm {} \;
 	find "${consolelogdir}"/* -mtime +${logdays} -exec rm {} \;
 	find "${consolelogdir}"/* -mtime +${logdays} -exec rm {} \;
 	fn_printok "Log cleaner removed ${count} log files"
 	fn_printok "Log cleaner removed ${count} log files"
+	fn_scriptlog "Log cleaner removed ${count} log files"
 	sleep 1
 	sleep 1
 	echo -en "\n"
 	echo -en "\n"
-	fn_scriptlog "Log cleaner removed ${count} log files"
 fi
 fi
 }
 }
 
 
@@ -244,8 +259,8 @@ sleep 1
 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 1 ]; then
 if [ ${tmuxwc} -eq 1 ]; then
 	fn_printoknl "Starting ${servicename} console"
 	fn_printoknl "Starting ${servicename} console"
-	sleep 1
 	fn_scriptlog "Console accessed"
 	fn_scriptlog "Console accessed"
+	sleep 1
 	tmux attach-session -t ${servicename}
 	tmux attach-session -t ${servicename}
 else
 else
 	fn_printfailnl "Starting ${servicename} console: ${servername} not running"
 	fn_printfailnl "Starting ${servicename} console: ${servername} not running"
@@ -296,8 +311,8 @@ fi
 fn_printdots "Starting backup ${servicename}: ${servername}"
 fn_printdots "Starting backup ${servicename}: ${servername}"
 sleep 1
 sleep 1
 fn_printok "Starting backup ${servicename}: ${servername}"
 fn_printok "Starting backup ${servicename}: ${servername}"
-sleep 1
 fn_scriptlog "Backup started"
 fn_scriptlog "Backup started"
+sleep 1
 echo -en "\n"
 echo -en "\n"
 cd "${rootdir}"
 cd "${rootdir}"
 mkdir -pv "${backupdir}" > /dev/null 2>&1
 mkdir -pv "${backupdir}" > /dev/null 2>&1
@@ -365,9 +380,9 @@ if [ ! -z "${gamelogdir}" ]; then
 fi
 fi
 mail -s "${subject}" ${email} < "${emaillog}"
 mail -s "${subject}" ${email} < "${emaillog}"
 fn_printinfo "Sent email notification to ${email}"
 fn_printinfo "Sent email notification to ${email}"
+fn_scriptlog "Sent email notification to ${email}"
 sleep 1
 sleep 1
 echo -en "\n"
 echo -en "\n"
-fn_scriptlog "Sent email notification to ${email}"
 }
 }
 
 
 fn_emailtest(){
 fn_emailtest(){
@@ -398,11 +413,11 @@ if [ -f gsquery.py ]; then
 		port=$((${port} + 1))
 		port=$((${port} + 1))
 	fi
 	fi
 	fn_printinfo "Monitoring ${servicename}: Detected gsquery.py"
 	fn_printinfo "Monitoring ${servicename}: Detected gsquery.py"
-	sleep 1	
 	fn_scriptlog "Detected gsquery.py"
 	fn_scriptlog "Detected gsquery.py"
+	sleep 1
 	fn_printdots "Monitoring ${servicename}: Querying port: ${ip}:${port}: QUERYING"
 	fn_printdots "Monitoring ${servicename}: Querying port: ${ip}:${port}: QUERYING"
-	sleep 1	
 	fn_scriptlog "Querying port: ${ip}:${port}: QUERYING"
 	fn_scriptlog "Querying port: ${ip}:${port}: QUERYING"
+	sleep 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
@@ -412,9 +427,8 @@ if [ -f gsquery.py ]; then
 		fn_scriptlog "Querying port: ${ip}:${port}: ${serverquery}"
 		fn_scriptlog "Querying port: ${ip}:${port}: ${serverquery}"
 		if [[ -z "${secondquery}" ]]; then
 		if [[ -z "${secondquery}" ]]; then
 			fn_printinfo "Monitoring ${servicename}: Waiting 30 seconds to re-query"
 			fn_printinfo "Monitoring ${servicename}: Waiting 30 seconds to re-query"
-			sleep 1
 			fn_scriptlog "Waiting 30 seconds to re-query"
 			fn_scriptlog "Waiting 30 seconds to re-query"
-			sleep 29
+			sleep 30
 			secondquery=1
 			secondquery=1
 			fn_serverquery
 			fn_serverquery
 		fi
 		fi
@@ -428,14 +442,14 @@ if [ -f gsquery.py ]; then
 		exit
 		exit
 	elif [ "${exitcode}" == "0" ]; then
 	elif [ "${exitcode}" == "0" ]; then
 		fn_printok "Monitoring ${servicename}: Querying port: ${ip}:${port}: OK"
 		fn_printok "Monitoring ${servicename}: Querying port: ${ip}:${port}: OK"
-		sleep 1		
 		fn_scriptlog "Querying port: ${ip}:${port}: OK"
 		fn_scriptlog "Querying port: ${ip}:${port}: OK"
+		sleep 1
 		echo -en "\n"
 		echo -en "\n"
 		exit
 		exit
 	elif [ "${exitcode}" == "126" ]; then
 	elif [ "${exitcode}" == "126" ]; then
 		fn_printfail "Monitoring ${servicename}: Querying port: ${ip}:${port}: ERROR: ./gsquery.py: Permission denied"
 		fn_printfail "Monitoring ${servicename}: Querying port: ${ip}:${port}: ERROR: ./gsquery.py: Permission denied"
-		sleep 1
 		fn_scriptlog "Querying port: ${ip}:${port}: ./gsquery.py: Permission denied"
 		fn_scriptlog "Querying port: ${ip}:${port}: ./gsquery.py: Permission denied"
+		sleep 1
 		echo -en "\n"
 		echo -en "\n"
 		echo "Attempting to resolve automatically"
 		echo "Attempting to resolve automatically"
 		chmod +x -v gsquery.py
 		chmod +x -v gsquery.py
@@ -452,9 +466,9 @@ if [ -f gsquery.py ]; then
 		fi
 		fi
 	else
 	else
 		fn_printfail "Monitoring ${servicename}: Querying port: ${ip}:${port}: UNKNOWN ERROR"
 		fn_printfail "Monitoring ${servicename}: Querying port: ${ip}:${port}: UNKNOWN ERROR"
+		fn_scriptlog "Querying port: ${ip}:${port}: UNKNOWN ERROR"
 		sleep 1
 		sleep 1
 		echo -en "\n"
 		echo -en "\n"
-		fn_scriptlog "Querying port: ${ip}:${port}: UNKNOWN ERROR"
 		./gsquery.py -a ${ip} -p ${port} -e ${engine}
 		./gsquery.py -a ${ip} -p ${port} -e ${engine}
 		exit
 		exit
 	fi
 	fi
@@ -465,27 +479,26 @@ fn_monitorserver(){
 fn_rootcheck
 fn_rootcheck
 fn_syscheck
 fn_syscheck
 fn_autoip
 fn_autoip
-fn_printdots "Monitoring ${servicename}: ${servername}"
-sleep 1
-if [ ! -f ${lockselfname} ]; then 
+if [ ! -f ${lockselfname} ]; then
 	fn_printinfo "Monitoring ${servicename}: No lock file found: Monitor disabled"
 	fn_printinfo "Monitoring ${servicename}: No lock file found: Monitor disabled"
 	sleep 1
 	sleep 1
 	echo -en "\n"
 	echo -en "\n"
-	echo "To enable monitor run ${selfname} start"
 	exit
 	exit
 fi
 fi
+fn_printdots "Monitoring ${servicename}: ${servername}"
 fn_scriptlog "Monitoring ${servername}"
 fn_scriptlog "Monitoring ${servername}"
+sleep 1
 updatecheck=$(ps -ef|grep "${selfname} update"|grep -v grep|wc -l)
 updatecheck=$(ps -ef|grep "${selfname} update"|grep -v grep|wc -l)
 if [ "${updatecheck}" = "0" ]; then
 if [ "${updatecheck}" = "0" ]; then
 	fn_printdots "Monitoring ${servicename}: Checking session: CHECKING"
 	fn_printdots "Monitoring ${servicename}: Checking session: CHECKING"
-	sleep 1	
 	fn_scriptlog "Checking session: CHECKING"
 	fn_scriptlog "Checking session: CHECKING"
+	sleep 1
 	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 1 ]; then
 	if [ ${tmuxwc} -eq 1 ]; then
 		fn_printok "Monitoring ${servicename}: Checking session: OK"
 		fn_printok "Monitoring ${servicename}: Checking session: OK"
-		sleep 1		
-		echo -en "\n"
 		fn_scriptlog "Checking session: OK"
 		fn_scriptlog "Checking session: OK"
+		sleep 1
+		echo -en "\n"
 		fn_serverquery
 		fn_serverquery
 		exit
 		exit
 	else
 	else
@@ -504,11 +517,11 @@ if [ "${updatecheck}" = "0" ]; then
 	fi
 	fi
 else
 else
 	fn_printinfonl "Monitoring ${servicename}: Detected SteamCMD is checking for updates"
 	fn_printinfonl "Monitoring ${servicename}: Detected SteamCMD is checking for updates"
-	sleep 1
 	fn_scriptlog "Detected SteamCMD is checking for updates"
 	fn_scriptlog "Detected SteamCMD is checking for updates"
+	sleep 1
 	fn_printinfonl "Monitoring ${servicename}: When updates complete ${servicename} will start"
 	fn_printinfonl "Monitoring ${servicename}: When updates complete ${servicename} will start"
-	sleep 1	
 	fn_scriptlog "When updates complete ${servicename} will start"
 	fn_scriptlog "When updates complete ${servicename} will start"
+	sleep 1
 fi
 fi
 }
 }
 
 
@@ -555,8 +568,8 @@ fn_rootcheck
 fn_syscheck
 fn_syscheck
 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)
 fn_printdots "Stopping ${servicename}: ${servername}"
 fn_printdots "Stopping ${servicename}: ${servername}"
-sleep 1
 fn_scriptlog "Stopping ${servername}"
 fn_scriptlog "Stopping ${servername}"
+sleep 1
 if [ "${pid}" == "0" ]; then
 if [ "${pid}" == "0" ]; then
 	fn_printfail "Stopping ${servicename}: ${servername} is already stopped"
 	fn_printfail "Stopping ${servicename}: ${servername} is already stopped"
 	fn_scriptlog "${servername} is already stopped"
 	fn_scriptlog "${servername} is already stopped"
@@ -579,6 +592,9 @@ 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
+	if [ "${engine}" == "unreal2" ]; then
+		mv "${gamelog}" "${gamelogdate}"
+	fi
 	mv "${scriptlog}" "${scriptlogdate}"
 	mv "${scriptlog}" "${scriptlogdate}"
 	mv "${consolelog}" "${consolelogdate}"
 	mv "${consolelog}" "${consolelogdate}"
 fi
 fi
@@ -587,9 +603,9 @@ sleep 1
 fn_scriptlog "Starting ${servername}"
 fn_scriptlog "Starting ${servername}"
 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"
 	sleep 1
 	sleep 1
 	echo -en "\n"
 	echo -en "\n"
-	fn_scriptlog "${servername} is already running"
 	exit
 	exit
 fi
 fi
 # Create lock file
 # Create lock file

+ 49 - 29
UnrealTournament2004/ut2k4server

@@ -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: 100914
+# Version: 170914
 
 
 #### Variables ####
 #### Variables ####
 
 
@@ -34,20 +34,23 @@ ip="0.0.0.0"
 
 
 # Logging
 # Logging
 logdays="7"
 logdays="7"
+gamelogdir="${rootdir}/log/server"
 scriptlogdir="${rootdir}/log/script"
 scriptlogdir="${rootdir}/log/script"
 consolelogdir="${rootdir}/log/console"
 consolelogdir="${rootdir}/log/console"
 
 
+gamelog="${gamelogdir}/${servicename}-game.log"
 scriptlog="${scriptlogdir}/${servicename}-script.log"
 scriptlog="${scriptlogdir}/${servicename}-script.log"
 consolelog="${consolelogdir}/${servicename}-console.log"
 consolelog="${consolelogdir}/${servicename}-console.log"
 emaillog="${scriptlogdir}/${servicename}-email.log"
 emaillog="${scriptlogdir}/${servicename}-email.log"
 
 
+gamelogdate="${gamelogdir}/${servicename}-game-$(date '+%d-%m-%Y-%H-%M-%S').log"
 scriptlogdate="${scriptlogdir}/${servicename}-script-$(date '+%d-%m-%Y-%H-%M-%S').log"
 scriptlogdate="${scriptlogdir}/${servicename}-script-$(date '+%d-%m-%Y-%H-%M-%S').log"
 consolelogdate="${consolelogdir}/${servicename}-console-$(date '+%d-%m-%Y-%H-%M-%S').log"
 consolelogdate="${consolelogdir}/${servicename}-console-$(date '+%d-%m-%Y-%H-%M-%S').log"
 
 
 # Start Variables
 # Start Variables
 fn_parms(){
 fn_parms(){
 defaultmap="DM-Rankin"
 defaultmap="DM-Rankin"
-parms="server ${defaultmap}?game=XGame.xDMGame -nohomedir ini=${ini} log=${logfile}"
+parms="server ${defaultmap}?game=XGame.xDMGame -nohomedir ini=${ini} log=${gamelog}"
 }
 }
 
 
 ##### Script #####
 ##### Script #####
@@ -97,7 +100,7 @@ fn_printwarn(){
 fn_printwarnnl(){
 fn_printwarnnl(){
 	echo -e "\r\033[K[\e[1;33m WARN \e[0;39m] $@"
 	echo -e "\r\033[K[\e[1;33m WARN \e[0;39m] $@"
 }
 }
-	
+
 # [ .... ]
 # [ .... ]
 fn_printdots(){
 fn_printdots(){
     echo -en "\r\033[K[ .... ] $@"
     echo -en "\r\033[K[ .... ] $@"
@@ -142,28 +145,40 @@ fi
 # log manager will active if finds logs older than ${logdays}
 # log manager will active if finds logs older than ${logdays}
 if [ `find "${scriptlogdir}"/* -mtime +${logdays}|wc -l` -ne "0" ]; then
 if [ `find "${scriptlogdir}"/* -mtime +${logdays}|wc -l` -ne "0" ]; then
 	fn_printdots "Starting log cleaner"
 	fn_printdots "Starting log cleaner"
-	sleep 1	
+	sleep 1
 	fn_printok "Starting log cleaner"
 	fn_printok "Starting log cleaner"
-	sleep 1	
 	fn_scriptlog "Starting log cleaner"
 	fn_scriptlog "Starting log cleaner"
 	sleep 1
 	sleep 1
 	echo -en "\n"
 	echo -en "\n"
 	fn_printinfo "Removing logs older than ${logdays} days"
 	fn_printinfo "Removing logs older than ${logdays} days"
-	sleep 1
-	echo -en "\n"
 	fn_scriptlog "Removing logs older than ${logdays} days"
 	fn_scriptlog "Removing logs older than ${logdays} days"
 	sleep 1
 	sleep 1
+	echo -en "\n"
+	if [ "${engine}" == "unreal2" ]; then
+		find "${gamelogdir}"/* -mtime +${logdays}|tee >> "${scriptlog}"
+	fi
 	find "${scriptlogdir}"/* -mtime +${logdays}|tee >> "${scriptlog}"
 	find "${scriptlogdir}"/* -mtime +${logdays}|tee >> "${scriptlog}"
 	find "${consolelogdir}"/* -mtime +${logdays}|tee >> "${scriptlog}"
 	find "${consolelogdir}"/* -mtime +${logdays}|tee >> "${scriptlog}"
+	if [ "${engine}" == "unreal2" ]; then
+		gamecount=$(find "${scriptlogdir}"/* -mtime +${logdays}|wc -l)
+	fi
 	scriptcount=$(find "${scriptlogdir}"/* -mtime +${logdays}|wc -l)
 	scriptcount=$(find "${scriptlogdir}"/* -mtime +${logdays}|wc -l)
 	consolecount=$(find "${consolelogdir}"/* -mtime +${logdays}|wc -l)
 	consolecount=$(find "${consolelogdir}"/* -mtime +${logdays}|wc -l)
 	count=$((${scriptcount} + ${consolecount}))
 	count=$((${scriptcount} + ${consolecount}))
+	if [ "${engine}" == "unreal2" ]; then
+		count=$((${scriptcount} + ${consolecount} + ${gamecount}))
+	else
+		count=$((${scriptcount} + ${consolecount}))
+	fi
+	if [ "${engine}" == "unreal2" ]; then
+		find "${gamelogdir}"/* -mtime +${logdays} -exec rm {} \;
+	fi
 	find "${scriptlogdir}"/* -mtime +${logdays} -exec rm {} \;
 	find "${scriptlogdir}"/* -mtime +${logdays} -exec rm {} \;
 	find "${consolelogdir}"/* -mtime +${logdays} -exec rm {} \;
 	find "${consolelogdir}"/* -mtime +${logdays} -exec rm {} \;
 	fn_printok "Log cleaner removed ${count} log files"
 	fn_printok "Log cleaner removed ${count} log files"
+	fn_scriptlog "Log cleaner removed ${count} log files"
 	sleep 1
 	sleep 1
 	echo -en "\n"
 	echo -en "\n"
-	fn_scriptlog "Log cleaner removed ${count} log files"
 fi
 fi
 }
 }
 
 
@@ -233,8 +248,8 @@ sleep 1
 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 1 ]; then
 if [ ${tmuxwc} -eq 1 ]; then
 	fn_printoknl "Starting ${servicename} console"
 	fn_printoknl "Starting ${servicename} console"
-	sleep 1
 	fn_scriptlog "Console accessed"
 	fn_scriptlog "Console accessed"
+	sleep 1
 	tmux attach-session -t ${servicename}
 	tmux attach-session -t ${servicename}
 else
 else
 	fn_printfailnl "Starting ${servicename} console: ${servername} not running"
 	fn_printfailnl "Starting ${servicename} console: ${servername} not running"
@@ -285,8 +300,8 @@ fi
 fn_printdots "Starting backup ${servicename}: ${servername}"
 fn_printdots "Starting backup ${servicename}: ${servername}"
 sleep 1
 sleep 1
 fn_printok "Starting backup ${servicename}: ${servername}"
 fn_printok "Starting backup ${servicename}: ${servername}"
-sleep 1
 fn_scriptlog "Backup started"
 fn_scriptlog "Backup started"
+sleep 1
 echo -en "\n"
 echo -en "\n"
 cd "${rootdir}"
 cd "${rootdir}"
 mkdir -pv "${backupdir}" > /dev/null 2>&1
 mkdir -pv "${backupdir}" > /dev/null 2>&1
@@ -354,9 +369,9 @@ if [ ! -z "${gamelogdir}" ]; then
 fi
 fi
 mail -s "${subject}" ${email} < "${emaillog}"
 mail -s "${subject}" ${email} < "${emaillog}"
 fn_printinfo "Sent email notification to ${email}"
 fn_printinfo "Sent email notification to ${email}"
+fn_scriptlog "Sent email notification to ${email}"
 sleep 1
 sleep 1
 echo -en "\n"
 echo -en "\n"
-fn_scriptlog "Sent email notification to ${email}"
 }
 }
 
 
 fn_emailtest(){
 fn_emailtest(){
@@ -387,11 +402,11 @@ if [ -f gsquery.py ]; then
 		port=$((${port} + 1))
 		port=$((${port} + 1))
 	fi
 	fi
 	fn_printinfo "Monitoring ${servicename}: Detected gsquery.py"
 	fn_printinfo "Monitoring ${servicename}: Detected gsquery.py"
-	sleep 1	
 	fn_scriptlog "Detected gsquery.py"
 	fn_scriptlog "Detected gsquery.py"
+	sleep 1
 	fn_printdots "Monitoring ${servicename}: Querying port: ${ip}:${port}: QUERYING"
 	fn_printdots "Monitoring ${servicename}: Querying port: ${ip}:${port}: QUERYING"
-	sleep 1	
 	fn_scriptlog "Querying port: ${ip}:${port}: QUERYING"
 	fn_scriptlog "Querying port: ${ip}:${port}: QUERYING"
+	sleep 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
@@ -401,9 +416,8 @@ if [ -f gsquery.py ]; then
 		fn_scriptlog "Querying port: ${ip}:${port}: ${serverquery}"
 		fn_scriptlog "Querying port: ${ip}:${port}: ${serverquery}"
 		if [[ -z "${secondquery}" ]]; then
 		if [[ -z "${secondquery}" ]]; then
 			fn_printinfo "Monitoring ${servicename}: Waiting 30 seconds to re-query"
 			fn_printinfo "Monitoring ${servicename}: Waiting 30 seconds to re-query"
-			sleep 1
 			fn_scriptlog "Waiting 30 seconds to re-query"
 			fn_scriptlog "Waiting 30 seconds to re-query"
-			sleep 29
+			sleep 30
 			secondquery=1
 			secondquery=1
 			fn_serverquery
 			fn_serverquery
 		fi
 		fi
@@ -417,14 +431,14 @@ if [ -f gsquery.py ]; then
 		exit
 		exit
 	elif [ "${exitcode}" == "0" ]; then
 	elif [ "${exitcode}" == "0" ]; then
 		fn_printok "Monitoring ${servicename}: Querying port: ${ip}:${port}: OK"
 		fn_printok "Monitoring ${servicename}: Querying port: ${ip}:${port}: OK"
-		sleep 1		
 		fn_scriptlog "Querying port: ${ip}:${port}: OK"
 		fn_scriptlog "Querying port: ${ip}:${port}: OK"
+		sleep 1
 		echo -en "\n"
 		echo -en "\n"
 		exit
 		exit
 	elif [ "${exitcode}" == "126" ]; then
 	elif [ "${exitcode}" == "126" ]; then
 		fn_printfail "Monitoring ${servicename}: Querying port: ${ip}:${port}: ERROR: ./gsquery.py: Permission denied"
 		fn_printfail "Monitoring ${servicename}: Querying port: ${ip}:${port}: ERROR: ./gsquery.py: Permission denied"
-		sleep 1
 		fn_scriptlog "Querying port: ${ip}:${port}: ./gsquery.py: Permission denied"
 		fn_scriptlog "Querying port: ${ip}:${port}: ./gsquery.py: Permission denied"
+		sleep 1
 		echo -en "\n"
 		echo -en "\n"
 		echo "Attempting to resolve automatically"
 		echo "Attempting to resolve automatically"
 		chmod +x -v gsquery.py
 		chmod +x -v gsquery.py
@@ -441,9 +455,9 @@ if [ -f gsquery.py ]; then
 		fi
 		fi
 	else
 	else
 		fn_printfail "Monitoring ${servicename}: Querying port: ${ip}:${port}: UNKNOWN ERROR"
 		fn_printfail "Monitoring ${servicename}: Querying port: ${ip}:${port}: UNKNOWN ERROR"
+		fn_scriptlog "Querying port: ${ip}:${port}: UNKNOWN ERROR"
 		sleep 1
 		sleep 1
 		echo -en "\n"
 		echo -en "\n"
-		fn_scriptlog "Querying port: ${ip}:${port}: UNKNOWN ERROR"
 		./gsquery.py -a ${ip} -p ${port} -e ${engine}
 		./gsquery.py -a ${ip} -p ${port} -e ${engine}
 		exit
 		exit
 	fi
 	fi
@@ -454,27 +468,26 @@ fn_monitorserver(){
 fn_rootcheck
 fn_rootcheck
 fn_syscheck
 fn_syscheck
 fn_autoip
 fn_autoip
-fn_printdots "Monitoring ${servicename}: ${servername}"
-sleep 1
-if [ ! -f ${lockselfname} ]; then 
+if [ ! -f ${lockselfname} ]; then
 	fn_printinfo "Monitoring ${servicename}: No lock file found: Monitor disabled"
 	fn_printinfo "Monitoring ${servicename}: No lock file found: Monitor disabled"
 	sleep 1
 	sleep 1
 	echo -en "\n"
 	echo -en "\n"
-	echo "To enable monitor run ${selfname} start"
 	exit
 	exit
 fi
 fi
+fn_printdots "Monitoring ${servicename}: ${servername}"
 fn_scriptlog "Monitoring ${servername}"
 fn_scriptlog "Monitoring ${servername}"
+sleep 1
 updatecheck=$(ps -ef|grep "${selfname} update"|grep -v grep|wc -l)
 updatecheck=$(ps -ef|grep "${selfname} update"|grep -v grep|wc -l)
 if [ "${updatecheck}" = "0" ]; then
 if [ "${updatecheck}" = "0" ]; then
 	fn_printdots "Monitoring ${servicename}: Checking session: CHECKING"
 	fn_printdots "Monitoring ${servicename}: Checking session: CHECKING"
-	sleep 1	
 	fn_scriptlog "Checking session: CHECKING"
 	fn_scriptlog "Checking session: CHECKING"
+	sleep 1
 	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 1 ]; then
 	if [ ${tmuxwc} -eq 1 ]; then
 		fn_printok "Monitoring ${servicename}: Checking session: OK"
 		fn_printok "Monitoring ${servicename}: Checking session: OK"
-		sleep 1		
-		echo -en "\n"
 		fn_scriptlog "Checking session: OK"
 		fn_scriptlog "Checking session: OK"
+		sleep 1
+		echo -en "\n"
 		fn_serverquery
 		fn_serverquery
 		exit
 		exit
 	else
 	else
@@ -493,11 +506,11 @@ if [ "${updatecheck}" = "0" ]; then
 	fi
 	fi
 else
 else
 	fn_printinfonl "Monitoring ${servicename}: Detected SteamCMD is checking for updates"
 	fn_printinfonl "Monitoring ${servicename}: Detected SteamCMD is checking for updates"
-	sleep 1
 	fn_scriptlog "Detected SteamCMD is checking for updates"
 	fn_scriptlog "Detected SteamCMD is checking for updates"
+	sleep 1
 	fn_printinfonl "Monitoring ${servicename}: When updates complete ${servicename} will start"
 	fn_printinfonl "Monitoring ${servicename}: When updates complete ${servicename} will start"
-	sleep 1	
 	fn_scriptlog "When updates complete ${servicename} will start"
 	fn_scriptlog "When updates complete ${servicename} will start"
+	sleep 1
 fi
 fi
 }
 }
 
 
@@ -512,8 +525,8 @@ fn_rootcheck
 fn_syscheck
 fn_syscheck
 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)
 fn_printdots "Stopping ${servicename}: ${servername}"
 fn_printdots "Stopping ${servicename}: ${servername}"
-sleep 1
 fn_scriptlog "Stopping ${servername}"
 fn_scriptlog "Stopping ${servername}"
+sleep 1
 if [ "${pid}" == "0" ]; then
 if [ "${pid}" == "0" ]; then
 	fn_printfail "Stopping ${servicename}: ${servername} is already stopped"
 	fn_printfail "Stopping ${servicename}: ${servername} is already stopped"
 	fn_scriptlog "${servername} is already stopped"
 	fn_scriptlog "${servername} is already stopped"
@@ -536,6 +549,9 @@ 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
+	if [ "${engine}" == "unreal2" ]; then
+		mv "${gamelog}" "${gamelogdate}"
+	fi
 	mv "${scriptlog}" "${scriptlogdate}"
 	mv "${scriptlog}" "${scriptlogdate}"
 	mv "${consolelog}" "${consolelogdate}"
 	mv "${consolelog}" "${consolelogdate}"
 fi
 fi
@@ -544,9 +560,9 @@ sleep 1
 fn_scriptlog "Starting ${servername}"
 fn_scriptlog "Starting ${servername}"
 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"
 	sleep 1
 	sleep 1
 	echo -en "\n"
 	echo -en "\n"
-	fn_scriptlog "${servername} is already running"
 	exit
 	exit
 fi
 fi
 # Create lock file
 # Create lock file
@@ -792,6 +808,8 @@ mkdir -pv "${scriptlogdir}"
 touch "${scriptlog}"
 touch "${scriptlog}"
 mkdir -pv "${consolelogdir}"
 mkdir -pv "${consolelogdir}"
 touch "${consolelog}"
 touch "${consolelog}"
+mkdir -pv "${gamelogdir}"
+touch "${gamelog}"
 sleep 1
 sleep 1
 echo ""
 echo ""
 }
 }
@@ -912,4 +930,6 @@ case "$1" in
 	echo "Usage: $0 {start|stop|restart|monitor|email-test|details|backup|console|debug|install|map-compressor}"
 	echo "Usage: $0 {start|stop|restart|monitor|email-test|details|backup|console|debug|install|map-compressor}"
 	exit 1;;
 	exit 1;;
 esac
 esac
+exit
+esac
 exit
 exit