4
0

fn_monitorserver 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. #!/bin/bash
  2. # LGSM fn_monitorserver function
  3. # Author: Daniel Gibbs
  4. # Website: http://danielgibbs.co.uk
  5. # Version: 011214
  6. fn_rootcheck
  7. fn_syscheck
  8. fn_autoip
  9. fn_printdots "Monitoring ${servicename}: ${servername}"
  10. fn_scriptlog "Monitoring ${servername}"
  11. sleep 1
  12. if [ ! -f "${lockselfname}" ]; then
  13. fn_printinfo "Monitoring ${servicename}: Monitor disabled: No lock file found"
  14. fn_scriptlog "Monitor disabled: No lock file found"
  15. sleep 1
  16. echo -en "\n"
  17. echo "To enable monitor run ${selfname} start"
  18. exit
  19. fi
  20. updatecheck=$(ps -ef|grep "${selfname} update"|grep -v grep|wc -l)
  21. if [ "${updatecheck}" = "0" ]; then
  22. fn_printdots "Monitoring ${servicename}: Checking session: CHECKING"
  23. fn_scriptlog "Checking session: CHECKING"
  24. sleep 1
  25. tmuxwc=$(tmux list-sessions 2>&1|awk '{print $1}'|grep -v failed|grep -E "^${servicename}:"|wc -l)
  26. if [ "${tmuxwc}" -eq 1 ]; then
  27. fn_printok "Monitoring ${servicename}: Checking session: OK"
  28. fn_scriptlog "Checking session: OK"
  29. sleep 1
  30. echo -en "\n"
  31. fn_serverquery
  32. exit
  33. else
  34. fn_printfail "Monitoring ${servicename}: Checking session: FAIL"
  35. fn_scriptlog "Checking session: FAIL"
  36. sleep 1
  37. echo -en "\n"
  38. if [ "${emailnotification}" = "on" ]; then
  39. subject="${servicename} Monitor - Starting ${servername}"
  40. failurereason="${servicename} process not running"
  41. actiontaken="${servicename} has been restarted"
  42. fn_emailnotification
  43. fi
  44. fn_scriptlog "Monitor is starting ${servername}"
  45. fn_startserver
  46. fi
  47. else
  48. fn_printinfonl "Monitoring ${servicename}: Detected SteamCMD is checking for updates"
  49. fn_scriptlog "Detected SteamCMD is checking for updates"
  50. sleep 1
  51. fn_printinfonl "Monitoring ${servicename}: When updates complete ${servicename} will start"
  52. fn_scriptlog "When updates complete ${servicename} will start"
  53. sleep 1
  54. fi