lgsm local mirror
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

401 lines
14 KiB

#!/bin/bash
# LGSM fn_details function
# Author: Daniel Gibbs
# Website: http://danielgibbs.co.uk
# Version: 210115
# Description: Displays server infomation.
# Standard Details
# This applies to all engines
fn_details_os(){
echo -e ""
echo -e "\e[93mDistro Details\e[0m"
printf '%*s\n' "${COLUMNS:-$(tput cols)}" '' | tr ' ' =
echo -e "\e[34mDistro:£\e[0m${os}" >> .fn_details_distro
echo -e "\e[34mArch:£\e[0m${arch}" >> .fn_details_distro
echo -e "\e[34mKernel:£\e[0m${kernel}" >> .fn_details_distro
echo -e "\e[34mHostname:£\e[0m$HOSTNAME" >> .fn_details_distro
echo -e "\e[34mtmux:£\e[0m${tmuxv}" >> .fn_details_distro
echo -e "\e[34mGLIBC:£\e[0m${glibcv}" >> .fn_details_distro
column -s '£' -t .fn_details_distro
rm -f .fn_details_distro
}
fn_details_performance(){
echo -e ""
echo -e "\e[93mPerformance\e[0m"
printf '%*s\n' "${COLUMNS:-$(tput cols)}" '' | tr ' ' =
echo -e "\e[34mUptime:£\e[0m${days}d, ${hours}h, ${minutes}m" >> .fn_details_performance
echo -e "\e[34mAvg Load:£\e[0m${load}" >> .fn_details_performance
column -s '£' -t .fn_details_performance
rm -f .fn_details_performance
echo -e ""
echo -e "\e[34mMem:£\e[34mtotal£ used£ free\e[0m" >> .fn_details_performance
echo -e "\e[34mPhysical:£\e[0m${physmemtotal}£${physmemused}£${physmemfree}\e[0m" >> .fn_details_performance
echo -e "\e[34mSwap:£\e[0m${swaptotal}£${swapused}£${swapfree}\e[0m" >> .fn_details_performance
column -s '£' -t .fn_details_performance
rm -f .fn_details_performance
}
fn_details_disk(){
echo -e ""
echo -e "\e[93mDisk Usage\e[0m"
printf '%*s\n' "${COLUMNS:-$(tput cols)}" '' | tr ' ' =
echo -e "\e[34mDisk available:£\e[0m${availspace}" >> .fn_details_disk
echo -e "\e[34mServerfiles:£\e[0m${serverfilesdu}" >> .fn_details_disk
if [ -d "${backupdir}" ]; then
echo -e "\e[34mBackups:£\e[0m${backupdirdu}" >> .fn_details_disk
fi
column -s '£' -t .fn_details_disk
rm -f .fn_details_disk
}
fn_details_gameserver(){
if [ ! -e ${servercfgfullpath} ]; then
servername="\e[0;31mCONFIG FILE MISSING!\e[0m"
rcon="\e[0;31mCONFIG FILE MISSING!\e[0m"
servercfgfullpath="${servercfgfullpath} \e[0;31mCONFIG FILE MISSING!!\e[0m"
fi
echo -e ""
echo -e "\e[92m${gamename} Server Details\e[0m"
printf '%*s\n' "${COLUMNS:-$(tput cols)}" '' | tr ' ' =
echo -e "\e[34mServer name:£\e[0m${servername}" >> .fn_details_gameserver
echo -e "\e[34mServer IP:£\e[0m${ip}:${port}" >> .fn_details_gameserver
if [ ! -z "${rcon}" ]; then
echo -e "\e[34mRCON password:£\e[0m${rcon}" >> .fn_details_gameserver
fi
pid=$(tmux list-sessions 2>&1|awk '{print $1}'|grep -E "^${servicename}:"|wc -l)
if [ "${pid}" == "0" ]; then
echo -e "\e[34mStatus:£\e[0;31mOFFLINE\e[0m" >> .fn_details_gameserver
else
echo -e "\e[34mStatus:£\e[0;32mONLINE\e[0m" >> .fn_details_gameserver
fi
column -s '£' -t .fn_details_gameserver
rm -f .fn_details_gameserver
echo -e ""
echo -e "\e[34mService name:£\e[0m${servicename}" >> .fn_details_gameserver
echo -e "\e[34mUser:£\e[0m$(whoami)" >> .fn_details_gameserver
echo -e "\e[34mLocation:£\e[0m${rootdir}" >> .fn_details_gameserver
if [ ! -z "${servercfgfullpath}" ]; then
echo -e "\e[34mConfig file:£\e[0m${servercfgfullpath}" >> .fn_details_gameserver
fi
column -s '£' -t .fn_details_gameserver
rm -f .fn_details_gameserver
}
fn_details_backup(){
echo -e ""
echo -e "\e[92mBackups\e[0m"
printf '%*s\n' "${COLUMNS:-$(tput cols)}" '' | tr ' ' =
if [ ! -d "${backupdir}" ]||[ "${backupcount}" == "0" ]; then
echo -e "No Backups created"
else
echo -e "\e[34mNo. of backups:£\e[0m${backupcount}" >> .fn_details_backup
echo -e "\e[34mLatest backup:\e[0m" >> .fn_details_backup
echo -e "\e[34m date:£\e[0m${lastbackupdate}" >> .fn_details_backup
echo -e "\e[34m file:£\e[0m${lastbackup}" >> .fn_details_backup
echo -e "\e[34m size:£\e[0m${lastbackupsize}" >> .fn_details_backup
column -s '£' -t .fn_details_backup
rm -f .fn_details_backup
fi
}
fn_details_commandlineparms(){
echo -e ""
echo -e "\e[92mCommand-line Parameters\e[0m"
printf '%*s\n' "${COLUMNS:-$(tput cols)}" '' | tr ' ' =
echo -e "${executable} ${parms}"
}
fn_details_statusbottom(){
echo -e ""
if [ "${pid}" == "0" ]; then
echo -e "\e[34mStatus: \e[0;31mOFFLINE\e[0m"
else
echo -e "\e[34mStatus: \e[0;32mONLINE\e[0m"
fi
echo -e ""
}
# Engine Specific details
fn_avalanchedetails(){
fn_check_ip
fn_details_config
fn_details_distro
fn_details_os
fn_details_performance
fn_details_disk
fn_details_gameserver
fn_details_backup
pid=$(tmux list-sessions 2>&1|awk '{print $1}'|grep -E "^${servicename}:"|wc -l)
echo -e ""
echo -e "\e[92mPorts\e[0m"
printf '%*s\n' "${COLUMNS:-$(tput cols)}" '' | tr ' ' =
echo -e "Change ports by editing the command-line"
echo -e "parameters in ${selfname}."
echo -e ""
echo -e "Useful port diagnostic command:"
echo -e "netstat -atunp | grep Jcmp-Server"
echo -e ""
echo -e "DESCRIPTION£DIRECTION£PORT£PROTOCOL" >> .fn_details_ports
echo -e "> Game/RCON£INBOUND£${port}£udp" >> .fn_details_ports
column -s '£' -t .fn_details_ports
rm -f .fn_details_ports
fn_details_statusbottom
}
fn_realvirtualitydetails(){
fn_check_ip
pid=$(tmux list-sessions 2>&1|awk '{print $1}'|grep -E "^${servicename}:"|wc -l)
fn_parms
fn_details_config
fn_details_distro
fn_details_os
fn_details_performance
fn_details_disk
fn_details_gameserver
fn_details_backup
fn_details_commandlineparms
echo -e ""
echo -e "\e[92mPorts\e[0m"
printf '%*s\n' "${COLUMNS:-$(tput cols)}" '' | tr ' ' =
echo -e "Change ports by editing the parameters in"
echo -e "${servercfgfullpath}."
echo -e ""
echo -e "Useful port diagnostic command:"
echo -e "netstat -atunp | grep arma3server"
echo -e ""
if [ -z ${port} ] || [ -z ${queryport} ] || [ -z ${masterport} ] ; then
echo -e "\e[0;31mERROR!\e[0m Missing/commented ports in ${servercfg}."
echo -e ""
fi
echo -e "DESCRIPTION£DIRECTION£PORT£PROTOCOL" >> .fn_details_ports
echo -e "> Game£INBOUND£${port}£udp" >> .fn_details_ports
echo -e "> Steam: Query£INBOUND£${queryport}£udp" >> .fn_details_ports
echo -e "> Steam: Master traffic£INBOUND£${masterport}£udp" >> .fn_details_ports
column -s '£' -t .fn_details_ports
rm -f .fn_details_ports
fn_details_statusbottom
}
fn_seriousengine35details(){
fn_check_ip
pid=$(tmux list-sessions 2>&1|awk '{print $1}'|grep -E "^${servicename}:"|wc -l)
fn_parms
fn_details_config
fn_details_distro
fn_details_os
fn_details_performance
fn_details_disk
fn_details_gameserver
fn_details_backup
fn_details_commandlineparms
echo -e ""
echo -e "\e[92mPorts\e[0m"
printf '%*s\n' "${COLUMNS:-$(tput cols)}" '' | tr ' ' =
echo -e "Change ports by editing the parameters in"
echo -e "${servercfgfullpath}."
echo -e ""
echo -e "Useful port diagnostic command:"
echo -e "netstat -atunp | grep Sam3_Dedicate"
echo -e ""
echo -e "DESCRIPTION£DIRECTION£PORT£PROTOCOL" >> .fn_details_ports
echo -e "> Game/RCON£INBOUND£${port}£tcp" >> .fn_details_ports
echo -e "> Query£INBOUND£${queryport}£udp" >> .fn_details_ports
column -s '£' -t .fn_details_ports
rm -f .fn_details_ports
fn_details_statusbottom
}
fn_sourcedetails(){
fn_check_ip
fn_parms
fn_details_distro
fn_details_os
fn_details_performance
fn_details_disk
fn_details_gameserver
fn_details_backup
fn_details_commandlineparms
echo -e ""
echo -e "\e[92mPorts\e[0m"
printf '%*s\n' "${COLUMNS:-$(tput cols)}" '' | tr ' ' =
echo -e "Change ports by editing the command-line"
echo -e "parameters in ${selfname}."
echo -e ""
echo -e "Useful port diagnostic command:"
echo -e "netstat -atunp | grep srcds_linux"
echo -e ""
echo -e "DESCRIPTION£DIRECTION£PORT£PROTOCOL" >> .fn_details_ports
echo -e "> Game/RCON£INBOUND£${port}£tcp/udp" >> .fn_details_ports
if [ ! -z "${sourcetvport}" ]; then
echo -e "> SourceTV£INBOUND£${sourcetvport}£udp" >> .fn_details_ports
fi
echo -e "< Client£OUTBOUND£${clientport}£udp" >> .fn_details_ports
column -s '£' -t .fn_details_ports
rm -f .fn_details_ports
fn_details_statusbottom
}
fn_sparkdetails(){
fn_check_ip
pid=$(tmux list-sessions 2>&1|awk '{print $1}'|grep -E "^${servicename}:"|wc -l)
fn_parms
fn_details_config
fn_details_distro
fn_details_os
fn_details_performance
fn_details_disk
fn_details_gameserver
fn_details_backup
fn_details_commandlineparms
echo -e ""
echo -e "\e[92mPorts\e[0m"
printf '%*s\n' "${COLUMNS:-$(tput cols)}" '' | tr ' ' =
echo -e "Change ports by editing the command-line"
echo -e "parameters in ${selfname}."
echo -e ""
echo -e "Useful port diagnostic command:"
echo -e "netstat -atunp | grep server_linux3"
echo -e ""
echo -e "DESCRIPTION£DIRECTION£PORT£PROTOCOL" >> .fn_details_ports
echo -e "> Game/RCON£INBOUND£${port}£udp" >> .fn_details_ports
echo -e "> Query£INBOUND£${queryport}£udp" >> .fn_details_ports
echo -e "> WebAdmin£INBOUND£${webadminport}£tcp" >> .fn_details_ports
column -s '£' -t .fn_details_ports
rm -f .fn_details_ports
echo -e ""
echo -e "\e[92m${servername} WebAdmin\e[0m"
printf '%*s\n' "${COLUMNS:-$(tput cols)}" '' | tr ' ' =
echo -e "\e[34mWebAdmin url:£\e[0mhttp://${ip}:${webadminport}/index.html" >> .fn_details_ports
echo -e "\e[34mWebAdmin username:£\e[0m${webadminuser}" >> .fn_details_ports
echo -e "\e[34mWebAdmin password:£\e[0m${webadminpass}" >> .fn_details_ports
column -s '£' -t .fn_details_ports
rm -f .fn_details_ports
fn_details_statusbottom
}
fn_unity3ddetails(){
fn_check_ip
pid=$(tmux list-sessions 2>&1|awk '{print $1}'|grep -E "^${servicename}:"|wc -l)
fn_parms
fn_details_config
fn_details_distro
fn_details_os
fn_details_performance
fn_details_disk
fn_details_gameserver
fn_details_backup
fn_details_commandlineparms
echo -e ""
echo -e "\e[92mPorts\e[0m"
printf '%*s\n' "${COLUMNS:-$(tput cols)}" '' | tr ' ' =
echo -e "Change ports by editing the parameters in"
echo -e "${servercfgfullpath}."
echo -e ""
echo -e "Useful port diagnostic command:"
echo -e "netstat -atunp | grep 7DaysToDie"
echo -e ""
echo -e "DESCRIPTION£DIRECTION£PORT£PROTOCOL" >> .fn_details_ports
echo -e "> Game/RCON£INBOUND£${port}£udp" >> .fn_details_ports
echo -e "> Query£INBOUND£${queryport}£udp" >> .fn_details_ports
echo -e "> WebAdmin£INBOUND£${webadminport}£tcp" >> .fn_details_ports
echo -e "> Telnet£INBOUND£${telnetport}£tcp" >> .fn_details_ports
column -s '£' -t .fn_details_ports
rm -f .fn_details_ports
echo -e ""
echo -e "\e[92m${servername} WebAdmin\e[0m"
printf '%*s\n' "${COLUMNS:-$(tput cols)}" '' | tr ' ' =
echo -e "\e[34mWebAdmin enabled:£\e[0m${webadminenabled}" >> .fn_details_ports
echo -e "\e[34mWebAdmin url:£\e[0mhttp://${ip}:${webadminport}" >> .fn_details_ports
echo -e "\e[34mWebAdmin password:£\e[0m${webadminpass}" >> .fn_details_ports
column -s '£' -t .fn_details_ports
rm -f .fn_details_ports
echo -e ""
echo -e "\e[92m${servername} Telnet\e[0m"
printf '%*s\n' "${COLUMNS:-$(tput cols)}" '' | tr ' ' =
echo -e "\e[34mTelnet enabled:£\e[0m${telnetenabled}" >> .fn_details_ports
echo -e "\e[34mTelnet address:£\e[0m${ip}:${telnetport}" >> .fn_details_ports
echo -e "\e[34mTelnet password:£\e[0m${telnetpass}" >> .fn_details_ports
column -s '£' -t .fn_details_ports
rm -f .fn_details_ports
fn_details_statusbottom
}
fn_unrealdetails(){
fn_check_ip
pid=$(tmux list-sessions 2>&1|awk '{print $1}'|grep -E "^${servicename}:"|wc -l)
fn_parms
fn_details_config
fn_details_distro
fn_details_os
fn_details_performance
fn_details_disk
fn_details_gameserver
fn_details_backup
fn_details_commandlineparms
echo -e ""
echo -e "\e[92mPorts\e[0m"
printf '%*s\n' "${COLUMNS:-$(tput cols)}" '' | tr ' ' =
echo -e "Change ports by editing the parameters in"
echo -e "${servercfgfullpath}."
echo -e ""
echo -e "Useful port diagnostic command:"
echo -e "netstat -atunp | grep ucc-bin"
echo -e ""
echo -e "DESCRIPTION£DIRECTION£PORT£PROTOCOL£INI VARIABLE" >> .fn_details_ports
echo -e "> Game£INBOUND£${port}£udp£Port=${port}" >> .fn_details_ports
echo -e "> Query£INBOUND£${queryport}£udp" >> .fn_details_ports
if [ "${engine}" == "unreal" ]; then
echo -e "< UdpLink Port (random)£OUTBOUND£${udplinkport}+£udp" >> .fn_details_ports
fi
if [ "${engine}" != "unreal" ] && [ "${appid}" != "223250" ]; then
echo -e "> GameSpy query£INBOUND£${gsqueryport}£udp£OldQueryPortNumber=${gsqueryport}" >> .fn_details_ports
fi
if [ "${appid}" == "215360" ]; then
echo -e "< Master server£OUTBOUND£28852£tcp/udp" >> .fn_details_ports
else
echo -e "< Master server£OUTBOUND£28900/28902£tcp/udp" >> .fn_details_ports
fi
if [ "${appid}" ]; then
if [ "${appid}" == "223250" ]; then
echo -e "< Steam£OUTBOUND£20610£udp" >> .fn_details_ports
else
echo -e "< Steam£OUTBOUND£20660£udp" >> .fn_details_ports
fi
fi
echo -e "> WebAdmin£INBOUND£${webadminport}£tcp£ListenPort=${webadminport}" >> .fn_details_ports
column -s '£' -t .fn_details_ports
rm -f .fn_details_ports
echo -e ""
echo -e "\e[92m${servername} WebAdmin\e[0m"
printf '%*s\n' "${COLUMNS:-$(tput cols)}" '' | tr ' ' =
echo -e "\e[34mWebAdmin enabled:£\e[0m${webadminenabled}" >> .fn_details_ports
echo -e "\e[34mWebAdmin url:£\e[0mhttp://${ip}:${webadminport}" >> .fn_details_ports
echo -e "\e[34mWebAdmin user:£\e[0m${webadminuser}" >> .fn_details_ports
echo -e "\e[34mWebAdmin password:£\e[0m${webadminpass}" >> .fn_details_ports
column -s '£' -t .fn_details_ports
rm -f .fn_details_ports
fn_details_statusbottom
}
if [ "${engine}" == "avalanche" ]; then
fn_avalanchedetails
elif [ "${engine}" == "realvirtuality" ]; then
fn_realvirtualitydetails
elif [ "${engine}" == "seriousengine35" ]; then
fn_seriousengine35details
elif [ "${engine}" == "source" ]||[ "${engine}" == "goldsource" ]; then
fn_sourcedetails
elif [ "${engine}" == "spark" ]; then
fn_sparkdetails
elif [ "${engine}" == "unity3d" ]; then
fn_unity3ddetails
elif [ "${engine}" == "unreal" ]||[ "${engine}" == "unreal2" ]; then
fn_unrealdetails
else
fn_printerrornl "Unable to detect server engine."
fi