fn_details 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311
  1. #!/bin/bash
  2. # LGSM fn_details function
  3. # Author: Daniel Gibbs
  4. # Website: http://danielgibbs.co.uk
  5. # Version: 291214
  6. # Description: Displays server infomation.
  7. fn_avalanchedetails(){
  8. fn_autoip
  9. servername=$(grep -s hostname "${servercfgfullpath}"|sed 's/hostname //g'|sed 's/"//g')
  10. pid=$(tmux list-sessions 2>&1|awk '{print $1}'|grep -E "^${servicename}:"|wc -l)
  11. echo ""
  12. echo "${gamename} Server Details"
  13. echo "============================"
  14. echo "Server name: ${servername}"
  15. echo "Server IP: ${ip}:${port}"
  16. echo "Config file: ${servercfgfullpath}"
  17. echo ""
  18. echo "Server Ports"
  19. echo "============================"
  20. echo "Ports the server is currently using."
  21. echo ""
  22. echo "DIRECTION DESCRIPTION PORT"
  23. echo "INBOUND Game port ${port}"
  24. echo ""
  25. echo "You can change ports by editing the"
  26. echo "start parameters in ${selfname}."
  27. echo ""
  28. if [ "${pid}" == "0" ]; then
  29. echo -e "Status:\e[0;31m OFFLINE\e[0;39m"
  30. else
  31. echo -e "Status:\e[0;32m ONLINE\e[0;39m"
  32. fi
  33. echo ""
  34. }
  35. fn_realvirtualitydetails(){
  36. fn_autoip
  37. servername=$(grep -s hostname "${servercfgfullpath}"|grep -v //|sed -e 's/\<hostname\>//g'|tr -d '=\"; ')
  38. serverport=$(grep -s serverport= "${servercfgfullpath}"|grep -v //|tr -d '\r'|tr -cd [:digit:])
  39. queryport=$(grep -s steamqueryport= "${servercfgfullpath}"|grep -v //|tr -d '\r'|tr -cd [:digit:])
  40. masterport=$(grep -s steamport= "${servercfgfullpath}"|grep -v //|tr -d '\r'|tr -cd [:digit:])
  41. pid=$(tmux list-sessions 2>&1|awk '{print $1}'|grep -E "^${servicename}:"|wc -l)
  42. echo ""
  43. echo "${gamename} Server Details"
  44. echo "============================"
  45. echo "Server name: ${servername}"
  46. echo "Server IP: ${ip}:${serverport}"
  47. echo "Config file: ${servercfgfullpath}"
  48. echo ""
  49. echo "Admin Password: ${adminpass}"
  50. echo ""
  51. echo "Server Ports"
  52. echo "============================"
  53. echo "Ports the server is currently using."
  54. echo ""
  55. if [ -z ${serverport} ] || [ -z ${queryport} ] || [ -z ${masterport} ] ; then
  56. echo -e "\e[0;31mERROR!\e[0;39m Missing/commented ports in ${servercfg}."
  57. echo ""
  58. fi
  59. echo "PROTOCOL DESCRIPTION PORT"
  60. echo "UDP Game port ${serverport}"
  61. echo "UDP STEAM query port ${queryport}"
  62. echo "UDP STEAM master traffic port ${masterport}"
  63. echo ""
  64. echo "You can change ports by editing the"
  65. echo "parameters in ${servercfgfullpath}"
  66. echo ""
  67. if [ "${pid}" == "0" ]; then
  68. echo -e "Status:\e[0;31m OFFLINE\e[0;39m"
  69. else
  70. echo -e "Status:\e[0;32m ONLINE\e[0;39m"
  71. fi
  72. echo ""
  73. }
  74. fn_seriousengine35details(){
  75. fn_autoip
  76. fn_parms
  77. servername=$(grep -s prj_strMultiplayerSessionName "${servercfgfullpath}"|sed 's/prj_strMultiplayerSessionName = //g'|sed 's/"//g'|sed 's/;//g')
  78. rcon=$(grep -s rcts_strAdminPassword "${servercfgfullpath}"|sed 's/rcts_strAdminPassword = //g'|sed 's/"//g'|sed 's/;//g')
  79. gameport=$(grep -s prj_uwPort "${servercfgfullpath}"|tr -d '\r'|tr -cd [:digit:])
  80. queryport=$((${gameport} + 1))
  81. pid=$(tmux list-sessions 2>&1|awk '{print $1}'|grep -E "^${servicename}:"|wc -l)
  82. echo ""
  83. echo "${gamename} Server Details"
  84. echo "============================"
  85. echo "Server name: ${servername}"
  86. echo "Server IP: ${ip}:${port}"
  87. echo "RCON password: ${rcon}"
  88. echo "Config file: ${servercfgfullpath}"
  89. echo ""
  90. echo "Server Ports"
  91. echo "============================"
  92. echo "Ports the server is currently using."
  93. echo ""
  94. echo "DIRECTION DESCRIPTION PORT"
  95. echo "INBOUND Game/RCON port ${port}"
  96. echo "INBOUND Query port ${queryport}"
  97. echo ""
  98. echo "You can change ports by editing the"
  99. echo "parameters in ${servercfgfullpath}"
  100. echo ""
  101. if [ "${pid}" == "0" ]; then
  102. echo -e "Status:\e[0;31m OFFLINE\e[0;39m"
  103. else
  104. echo -e "Status:\e[0;32m ONLINE\e[0;39m"
  105. fi
  106. echo ""
  107. }
  108. fn_sourcedetails(){
  109. fn_autoip
  110. fn_parms
  111. servername=$(grep -s hostname "${servercfgfullpath}"|sed 's/hostname //g'|sed 's/"//g')
  112. rcon=$(grep -s rcon_password "${servercfgfullpath}"|sed 's/rcon_password //g'|sed 's/"//g')
  113. pid=$(tmux list-sessions 2>&1|awk '{print $1}'|grep -E "^${servicename}:"|wc -l)
  114. echo ""
  115. echo "${gamename} Server Details"
  116. echo "============================"
  117. echo "Server name: ${servername}"
  118. echo "Server IP: ${ip}:${port}"
  119. echo "RCON password: ${rcon}"
  120. echo "Config file: ${servercfgfullpath}"
  121. echo ""
  122. echo "Start Parameters"
  123. echo "============================"
  124. echo "${executable} ${parms}"
  125. echo ""
  126. echo "Server Ports"
  127. echo "============================"
  128. echo "Ports the server is currently using."
  129. echo ""
  130. echo "DIRECTION DESCRIPTION PORT"
  131. echo "INBOUND Game/RCON port ${port}"
  132. if [ ! -z "${sourcetvport}" ]; then
  133. echo "INBOUND SourceTV port ${sourcetvport}"
  134. fi
  135. echo "OUTBOUND Client port ${clientport}"
  136. echo ""
  137. echo "You can change ports by editing the"
  138. echo "start parameters in ${selfname}."
  139. echo ""
  140. if [ "${pid}" == "0" ]; then
  141. echo -e "Status:\e[0;31m OFFLINE\e[0;39m"
  142. else
  143. echo -e "Status:\e[0;32m ONLINE\e[0;39m"
  144. fi
  145. echo ""
  146. }
  147. fn_sparkdetails(){
  148. fn_autoip
  149. queryport=$((${port} + 1))
  150. pid=$(tmux list-sessions 2>&1|awk '{print $1}'|grep -E "^${servicename}:"|wc -l)
  151. echo ""
  152. echo "${gamename} Server Details"
  153. echo "============================"
  154. echo "Server name: ${servername}"
  155. echo "Server IP: ${ip}:${port}"
  156. echo ""
  157. echo "Server Ports"
  158. echo "============================"
  159. echo "Ports the server is currently using."
  160. echo ""
  161. echo "DIRECTION DESCRIPTION PORT"
  162. echo "INBOUND Game/RCON port ${port}"
  163. echo "INBOUND Query port ${queryport}"
  164. echo "INBOUND WebAdmin ${webadminport}"
  165. echo ""
  166. echo "${servername} WebAdmin"
  167. echo "======================="
  168. echo "WebAdmin URL: http://${ip}:${webadminport}/index.html"
  169. echo "WebAdmin Username: ${webadminuser}"
  170. echo "WebAdmin Password: ${webadminpass}"
  171. echo ""
  172. echo "You can change various parameters by editing the"
  173. echo "start parameters in ${selfname}."
  174. echo ""
  175. if [ "${pid}" == "0" ]; then
  176. echo -e "Status:\e[0;31m OFFLINE\e[0;39m"
  177. else
  178. echo -e "Status:\e[0;32m ONLINE\e[0;39m"
  179. fi
  180. echo ""
  181. }
  182. fn_unity3ddetails(){
  183. fn_autoip
  184. pid=$(tmux list-sessions 2>&1|awk '{print $1}'|grep -E "^${servicename}:"|wc -l)
  185. servername=$(grep ServerName "${servercfgfullpath}"|sed 's/^.*value="//'|cut -f1 -d"\"")
  186. gameport=$(grep ServerPort "${servercfgfullpath}"|tr -cd [:digit:])
  187. queryport=$((${gameport} + 1))
  188. webadminenabled=$(grep ControlPanelEnabled "${servercfgfullpath}"|sed 's/^.*value="//'|cut -f1 -d"\"")
  189. webadminport=$(grep ControlPanelPort "${servercfgfullpath}"|tr -cd [:digit:])
  190. telnetport=$(grep TelnetPort "${servercfgfullpath}"|tr -cd [:digit:])
  191. webadminuser=$(grep ControlPanelPassword "${servercfgfullpath}"|sed 's/^.*value="//'|cut -f1 -d"\"")
  192. echo ""
  193. echo "${gamename} Server Details"
  194. echo "============================"
  195. echo "Server name: ${servername}"
  196. echo "Server IP: ${ip}:${gameport}"
  197. echo "Config file: ${servercfgfullpath}"
  198. echo ""
  199. echo "Server Ports"
  200. echo "============================"
  201. echo "Ports the server is currently using."
  202. echo ""
  203. echo "DIRECTION DESCRIPTION PORT"
  204. echo "INBOUND Game port ${gameport}"
  205. echo "INBOUND Query port ${queryport}"
  206. echo "INBOUND WebAdmin ${webadminport}"
  207. echo "INBOUND Telnet ${telnetport}"
  208. echo ""
  209. echo "${servername} WebAdmin"
  210. echo "======================="
  211. echo "WebAdmin Enabled: ${webadminenabled}"
  212. echo "WebAdmin URL: http://${ip}:${webadminport}"
  213. echo "WebAdmin Username: ${webadminuser}"
  214. echo ""
  215. echo "You can change ports by editing the"
  216. echo "parameters in ${servercfgfullpath}"
  217. echo ""
  218. if [ "${pid}" == "0" ]; then
  219. echo -e "Status:\e[0;31m OFFLINE\e[0;39m"
  220. else
  221. echo -e "Status:\e[0;32m ONLINE\e[0;39m"
  222. fi
  223. echo ""
  224. }
  225. fn_unrealdetails(){
  226. fn_autoip
  227. pid=$(tmux list-sessions 2>&1|awk '{print $1}'|grep -E "^${servicename}:"|wc -l)
  228. gameport=$(grep Port= "${systemdir}/${ini}"|grep -v Master|grep -v LAN|grep -v Proxy|grep -v Listen|tr -d '\r'|tr -cd [:digit:])
  229. queryport=$((${gameport} + 1))
  230. gsqueryport=$(grep OldQueryPortNumber= "${systemdir}/${ini}"|tr -d '\r'|tr -cd [:digit:])
  231. udplinkport=$((${gameport} + 2))
  232. webadminport=$(grep ListenPort= "${systemdir}/${ini}"|tr -d '\r'|tr -cd [:digit:])
  233. if [ "${engine}" == "unreal" ]; then
  234. webadminuser=$(grep AdminUsername= "${systemdir}/${ini}"|sed 's/\AdminUsername=//g')
  235. else
  236. webadminuser=$(grep AdminName= "${systemdir}/${ini}"|sed 's/\AdminName=//g')
  237. fi
  238. webadminpass=$(grep AdminPassword= "${systemdir}/${ini}"|sed 's/\AdminPassword=//g')
  239. echo ""
  240. echo "${gamename} Server Details"
  241. echo "============================"
  242. echo "Server name: ${servername}"
  243. echo "Server IP: ${ip}:${gameport}"
  244. echo "Config file: ${systemdir}/${ini}"
  245. echo ""
  246. echo "Server Ports"
  247. echo "============================"
  248. echo "Ports the server is currently using."
  249. echo ""
  250. echo "DIRECTION DESCRIPTION PORT INI VARIABLE"
  251. echo "INBOUND Game port ${gameport} UDP Port=${gameport}"
  252. echo "INBOUND Query port ${queryport} UDP n/a"
  253. if [ "${engine}" == "unreal" ]; then
  254. echo "OUTBOUND UdpLink Port (random) ${udplinkport}+ UDP n/a"
  255. fi
  256. if [ "${engine}" != "unreal" ] && [ "${appid}" != "223250" ]; then
  257. echo "INBOUND GameSpy query port ${gsqueryport} UDP OldQueryPortNumber=${gsqueryport}"
  258. fi
  259. if [ "${appid}" == "215360" ]; then
  260. echo "OUTBOUND Master server port 28852 TCP/UDP n/a"
  261. else
  262. echo "OUTBOUND Master server port 28900/28902 TCP/UDP n/a"
  263. fi
  264. if [ "${appid}" ]; then
  265. if [ "${appid}" == "223250" ]; then
  266. echo "OUTBOUND Steam port 20610 UDP n/a"
  267. else
  268. echo "OUTBOUND Steam port 20660 UDP n/a"
  269. fi
  270. fi
  271. echo "INBOUND WebAdmin ${webadminport} TCP ListenPort=${webadminport}"
  272. echo ""
  273. echo "${servername} WebAdmin"
  274. echo "======================="
  275. echo "WebAdmin URL: http://${ip}:${webadminport}"
  276. echo "WebAdmin Username: ${webadminuser}"
  277. echo "WebAdmin Password: ${webadminpass}"
  278. echo ""
  279. if [ "${pid}" == "0" ]; then
  280. echo -e "Status:\e[0;31m OFFLINE\e[0;39m"
  281. else
  282. echo -e "Status:\e[0;32m ONLINE\e[0;39m"
  283. fi
  284. echo ""
  285. }
  286. if [ "${engine}" == "avalanche" ]; then
  287. fn_avalanchedetails
  288. elif [ "${engine}" == "realvirtuality" ]; then
  289. fn_realvirtualitydetails
  290. elif [ "${engine}" == "seriousengine35" ]; then
  291. fn_seriousengine35details
  292. elif [ "${engine}" == "source" ]||[ "${engine}" == "goldsource" ]; then
  293. fn_sourcedetails
  294. elif [ "${engine}" == "spark" ]; then
  295. fn_sparkdetails
  296. elif [ "${engine}" == "unity3d" ]; then
  297. fn_unity3ddetails
  298. elif [ "${engine}" == "unreal" ]||[ "${engine}" == "unreal2" ]; then
  299. fn_unrealdetails
  300. else
  301. echo "error: Unable to detect server engine!"
  302. fi