Advertisement
Guest User

TrackMania² servers - Servercheck cron script

a guest
May 14th, 2021
141
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.00 KB | None | 0 0
  1. #! /bin/bash
  2.  
  3. logfile="/var/log/trackmania2/servercheck.log"
  4.  
  5. function checkIt()
  6. {
  7.  serverdata=$(php /home/tm2launcher/Scripts/RPCUtils/sendcmd.php "$1" GetNetworkStats)
  8.  uptime=$(echo "$serverdata" | jq '.Uptime')
  9.  uptimedays=$(($uptime/86400))
  10.  uptimelimit=1728000
  11.  nbplayers=$(echo "$serverdata" | jq '.PlayerNetInfos | length')
  12.  
  13.  if [ "$uptime" -ge $uptimelimit ]
  14.  then
  15.    if [ "$nbplayers" -eq 0 ]
  16.    then
  17.      echo "[RESTART]$(date '+%Y-%m-%d %H:%M:%S'): TM2 $1 server started 20+ days ago ($uptimedays). $nbplayers player on it, restarting it." >> $logfile;
  18.      if [ $1 == 'stadium' ]; then
  19.        /etc/init.d/trackmania2 restart >> $logfile
  20.      elif [ $1 == 'rpg' ]; then
  21.        /etc/init.d/trackmania2_rpg restart >> $logfile
  22.      elif [ $1 == 'rpgbeg' ]; then
  23.        /etc/init.d/trackmania2_rpg restart beg >> $logfile
  24.      elif [ $1 == 'rpgint' ]; then
  25.        /etc/init.d/trackmania2_rpg restart int >> $logfile
  26.      elif [ $1 == 'rpgadv' ]; then
  27.        /etc/init.d/trackmania2_rpg restart adv >> $logfile
  28.      elif [ $1 == 'rpgexp' ]; then
  29.        /etc/init.d/trackmania2_rpg restart exp >> $logfile
  30.      elif [ $1 == 'rpgprv' ]; then
  31.        /etc/init.d/trackmania2_rpg restart prv >> $logfile
  32. #     elif [ $1 == 'ccpall' ]; then
  33. #       /etc/init.d/trackmania2_ccp restart all >> $logfile
  34. #     elif [ $1 == 'ccpesl' ]; then
  35. #       /etc/init.d/trackmania2_ccp restart esl >> $logfile
  36. #     elif [ $1 == 'ccpalp' ]; then
  37. #       /etc/init.d/trackmania2_ccp restart alp >> $logfile
  38.      fi;
  39.   else
  40.     echo "[PENDING]$(date '+%Y-%m-%d %H:%M:%S'): TM2 $1 server started 20+ days ago ($uptimedays). $nbplayers player(s) on it, restart delayed." >> $logfile;
  41.   fi;
  42.  else
  43.    echo "[OK]$(date '+%Y-%m-%d %H:%M:%S'): TM2 $1 server is running for less than 20 days ($uptimedays)." >> $logfile;
  44.  fi;
  45. }
  46.  
  47. checkIt "stadium";
  48. checkIt "rpg";
  49. checkIt "rpgbeg";
  50. checkIt "rpgint";
  51. checkIt "rpgadv";
  52. checkIt "rpgexp";
  53. checkIt "rpgprv";
  54. #checkIt "ccpall";
  55. #checkIt "ccpesl";
  56. #checkIt "ccpalp";
  57.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement