|
|
@@ -3,7 +3,7 @@
|
|
|
# Server Management Script
|
|
|
# Author: Daniel Gibbs
|
|
|
# Website: http://danielgibbs.co.uk
|
|
|
-# Version: 240114
|
|
|
+# Version: 010214
|
|
|
|
|
|
#### Variables ####
|
|
|
|
|
|
@@ -25,7 +25,7 @@ maxplayers="24"
|
|
|
ip="0.0.0.0"
|
|
|
# https://developer.valvesoftware.com/wiki/Command_Line_Options#Source_Dedicated_Server
|
|
|
fn_parms(){
|
|
|
-parms="+map ${defaultmap} -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} -maxplayers ${maxplayers}"
|
|
|
+parms="+map ${defaultmap} -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} -maxplayers ${maxplayers} +servercfgfile ${servercfg}"
|
|
|
}
|
|
|
|
|
|
#### Advanced Variables ####
|
|
|
@@ -44,15 +44,17 @@ selfname="$0"
|
|
|
filesdir="${rootdir}/serverfiles"
|
|
|
systemdir="${filesdir}/insurgency"
|
|
|
executabledir="${filesdir}"
|
|
|
-executable="./srcds_linux"
|
|
|
-servercfg="${systemdir}/cfg/${servicename}.cfg"
|
|
|
-defaultcfg="${systemdir}/cfg/server.cfg"
|
|
|
+executable="./srcds_run"
|
|
|
+servercfgdir="${systemdir}/cfg"
|
|
|
+servercfg="${servicename}.cfg"
|
|
|
+servercfgfullpath="${servercfgdir}/${servercfg}"
|
|
|
+defaultcfg="${servercfgdir}/server.cfg"
|
|
|
backupdir="backups"
|
|
|
steamclient="${rootdir}/steamcmd/linux32/steamclient.so"
|
|
|
|
|
|
# Server Details
|
|
|
-servername=$(grep -s hostname "${servercfg}"|sed 's/hostname //g'|sed 's/"//g')
|
|
|
-rcon=$(grep -s rcon_password "${servercfg}"|sed 's/rcon_password //g'|sed 's/"//g')
|
|
|
+servername=$(grep -s hostname "${servercfgfullpath}"|sed 's/hostname //g'|sed 's/"//g')
|
|
|
+rcon=$(grep -s rcon_password "${servercfgfullpath}"|sed 's/rcon_password //g'|sed 's/"//g')
|
|
|
|
|
|
# Logging
|
|
|
logdays="7"
|
|
|
@@ -356,6 +358,13 @@ if [ -f gsquery.py ]; then
|
|
|
fn_scriptlog "Querying port: ${ip}:${port}: ${serverquery}"
|
|
|
sleep 1
|
|
|
echo -en "\n"
|
|
|
+ if [[ -z "${secondquery}" ]]; then
|
|
|
+ echo -en "\r\033[K[\e[0;36m INFO \e[0;39m] Monitoring ${servicename}: Waiting 30 seconds to re-query"
|
|
|
+ fn_scriptlog "Waiting 30 seconds to re-query"
|
|
|
+ sleep 30
|
|
|
+ secondquery=1
|
|
|
+ fn_serverquery
|
|
|
+ fi
|
|
|
if [ "${emailnotification}" = "on" ]; then
|
|
|
subject="${servicename} Monitor - Starting ${servername}"
|
|
|
failurereason="Failed to query ${servicename}: ${serverquery}"
|
|
|
@@ -517,8 +526,8 @@ echo -en "\n"
|
|
|
|
|
|
fn_details(){
|
|
|
fn_autoip
|
|
|
-servername=$(grep -s hostname "${servercfg}"|sed 's/hostname //g'|sed 's/"//g')
|
|
|
-rcon=$(grep -s rcon_password "${servercfg}"|sed 's/rcon_password //g'|sed 's/"//g')
|
|
|
+servername=$(grep -s hostname "${servercfgfullpath}"|sed 's/hostname //g'|sed 's/"//g')
|
|
|
+rcon=$(grep -s rcon_password "${servercfgfullpath}"|sed 's/rcon_password //g'|sed 's/"//g')
|
|
|
pid=$(tmux list-sessions 2>&1|awk '{print $1}'|grep -E "^${servicename}:"|wc -l)
|
|
|
echo ""
|
|
|
echo "${gamename} Server Details"
|
|
|
@@ -526,7 +535,7 @@ echo "============================"
|
|
|
echo "Server name: ${servername}"
|
|
|
echo "Server IP: ${ip}:${port}"
|
|
|
echo "RCON password: ${rcon}"
|
|
|
-echo "Config file: ${servercfg}"
|
|
|
+echo "Config file: ${servercfgfullpath}"
|
|
|
echo ""
|
|
|
echo "${servername} Ports"
|
|
|
echo "============================"
|
|
|
@@ -689,7 +698,7 @@ echo "================================="
|
|
|
echo "exec ${servicename}.cfg" > "${defaultcfg}"
|
|
|
sleep 1
|
|
|
echo "Creating ${servicename}.cfg config file."
|
|
|
- touch "${servercfg}"
|
|
|
+ touch "${servercfgfullpath}"
|
|
|
{
|
|
|
echo -e "// server name"
|
|
|
echo -e "hostname \"${servername}\""
|
|
|
@@ -706,7 +715,7 @@ echo "================================="
|
|
|
echo -e "sv_logecho 1"
|
|
|
echo -e "sv_logfile 1"
|
|
|
echo -e "sv_log_onefile 0"
|
|
|
- }|tee "${servercfg}" > /dev/null 2>&1
|
|
|
+ }|tee "${servercfgfullpath}" > /dev/null 2>&1
|
|
|
sleep 1
|
|
|
echo ""
|
|
|
fn_header
|