Advertisement
jay1110

Start Stop Restart logrotate script W:ET gameservers.

Apr 5th, 2017 (edited)
661
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 4.90 KB | Gaming | 0 0
  1. #!/bin/bash
  2.     # etserver.sh v0.2 11.April.2017 ETc|#Jay.#
  3.     # needed packages: apt-get install screen
  4.     # features:
  5.     # - ./etserver.sh start         [what is it doing? -> starts etserver.]
  6.     # - ./etserver.sh stop          [what is it doing? -> stops etserver.]
  7.     # - ./etserver.sh restart       [what is it doing? -> stops the etserver if running then it restarts etserver.]
  8.     # - ./etserver.sh restart_log   [what is it doing? -> stops the etserver if running, renames your server.log/etconsole.log/admin.log/crash.log to servername_year_month_day.log and moves it to a log folder. then it restarts etserver.]
  9.     #
  10.     # For logrotate + autorestart ET server every day, create a crontab. Example  (4:00am every day): 0 4 * * * /home/etserver/etserver.sh restart_log
  11.     # Only autorestart ET Server every day, create a crontab. Example  (4:00am every day): 0 4 * * * /home/etserver/etserver.sh restart
  12.     # If server crashed start it automaticly. Create a crontab. Example  (check every minute if server down. if down start Et Server ): * * * * * /home/etserver/etserver.sh start
  13.     # Backup your logs first. Use at your own risk. check this site for updates https://pastebin.com/GbpyWbgp
  14.     # dont run as root, create a user as example etserver. Dont forget to give the file etded/etlded and etserver.sh chmod 755
  15.     # ideas are welcome, report bugs to [email protected], support at http://www.clan-etc.de/phpBB3/viewtopic.php?f=29&t=3506 discord https://discord.gg/6yFPcR7
  16.  
  17.  
  18. servername=server1                          #no spaces
  19. etpath=/home/etserver                       #path to the etserver folder, same folder where the etded/et300 file is.
  20. etded=etlded.x86_64                         # etded=etded.x86 2.60b   etlegacy 32 bit etded=etlded.i386    etlegacy 64 bit etded=etlded.x86_64
  21. ip=37.114.96.119                            #gameserver ip
  22. port=27960                                  #gameserver port
  23. mod=nitmod                                  #gameserver mod
  24. maxclients=20
  25. map=goldrush                                #map at startup
  26. logdir="$etpath/$mod/log"                   #the folder where the new log will be saved
  27. serverlog="$etpath/$mod/etserver.log"       #path to the log wich needs to be moved and renamed. # add a route infront of the line if you wont use it.
  28. consolelog="$etpath/$mod/etconsole.log"     #path to the log wich needs to be moved and renamed. # add a route infront of the line if you wont use it.
  29. adminlog="$etpath/$mod/admin.log"           #path to the log wich needs to be moved and renamed. # add a route infront of the line if you wont use it.
  30. #crashlog="$etpath/$mod/crash.log"          #path to the log wich needs to be moved and renamed. # add a route infront of the line if you wont use it.
  31. tstamp=$(date +"%Y_%m_%d_%H-%M-%S")
  32.  
  33.  
  34. #change nothing below, only if you know what you do.
  35.  
  36. case "$1" in
  37.  
  38. 'start')
  39.             mkdir -p $etpath/$mod/log                                                   #create log folder if not exist
  40.             mv "$consolelog" "$logdir/${servername}_${tstamp}_etconsole.log"
  41.             echo -e "\e[92m--- $servername $etpath $ip:$port $mod $map $tstamp start --- \e[0m"
  42.     ps ax | grep "+set net_port $port" | grep -v "grep" > /dev/null 2>&1        #check if the ET server is in the processes list
  43.     if [ $? -ne 0 ]                                                         # NO ? so ...reload the ET Server
  44.         then
  45.             cd $etpath
  46.             screen -m -d -S "$servername" ./$etded +set fs_basepath $etpath +set fs_homepath $etpath +set vm_game 0 +set net_ip $ip +set net_port $port +set fs_game $mod +set sv_maxclients $maxclients +exec server.cfg +map $map +set sv_autoUpdate 1 +set ttycon 0 +set com_hunkmegs 512 +set com_zonemegs 128
  47.             echo -e "\e[92m-- \e[0m"
  48.             sleep 1
  49.             echo -e "\e[92m-- \e[0m"
  50.             sleep 1
  51.             echo -e "\e[92m--- $servername $etpath $ip:$port 2.60b $xport 2.55 $mod $map $tstamp started --- \e[0m"
  52.         else
  53.             echo -e "\e[91m--- $servername $etpath $ip:$port 2.60b $xport 2.55 $mod is allready running!!! --- \e[0m"
  54.     fi
  55. exit 0
  56.         ;;
  57.  
  58. 'stop')
  59.    if [[ `screen -ls |grep $servername` ]]
  60.         then
  61.             echo -e "\e[92m--- $servername $etpath $ip:$port 2.60b $xport 2.55 $mod stop --- \e[0m"
  62.             screen -X -S "$servername" quit
  63.             echo -e "\e[92m-- \e[0m"
  64.             sleep 1
  65.             echo -e "\e[92m-- \e[0m"
  66.             sleep 1
  67.             echo -e "\e[92m--- $servername $etpath $ip:$port 2.60b $xport 2.55 $mod stopped --- \e[0m"
  68.         else
  69.             echo -e "\e[91m--- $servername $etpath $ip:$port 2.60b $xport 2.55 $mod is not running. --- \e[0m"
  70.     fi
  71.         ;;
  72.  
  73. 'restart')
  74.         $0 stop
  75.         $0 start
  76.         ;;
  77.  
  78. 'restart_log')
  79.         $0 stop
  80.             echo -e "\e[91m---- move logs to folder: $etpath/$mod/log ---- \e[0m"
  81.             mkdir -p $etpath/$mod/log                                                   #create log folder if not exist
  82.             mv "$serverlog" "$logdir/${servername}_${tstamp}_etserver.log"              #move and rename log. todo merge if allready exist
  83.             mv "$consolelog" "$logdir/${servername}_${tstamp}_etconsole.log"
  84.             mv "$adminlog" "$logdir/${servername}_${tstamp}_admin.log"
  85.             # mv "$crashlog" "$logdir/${servername}_${tstamp}_crash.log"
  86.             echo -e "\e[91m---- logs moved to folder: $etpath/$mod/log ---- \e[0m"
  87.         $0 start
  88.         ;;
  89.  
  90. *)
  91.             echo "etserver.sh : $0 { start | stop | restart | restart_log }"
  92.         ;;
  93.  
  94. esac
  95. exit 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement