Advertisement
Kylroi

TrinityCore runworld bash script - 2015-09-19

Jan 25th, 2014
304
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.73 KB | None | 0 0
  1. #!/bin/sh
  2.  
  3. # site settings
  4. BaseDir="/home/$USER/Server/Core"
  5. LogDir="$BaseDir/logs"
  6. AuthBin="$BaseDir/bin/authserver"
  7. AuthParm="--config $BaseDir/conf/authserver.conf"
  8. BNetBin="$BaseDir/bin/bnetserver"
  9. BNetparm="--config $BaseDir/conf/bnetserver.conf"
  10. WorldBin="$BaseDir/bin/worldserver"
  11. WorldParm="--config $BaseDir/conf/worldserver.conf"
  12. CheckBin="`which mysqlcheck`"
  13. SQLUser="trinity"
  14. SQLPass="trinity"
  15. SQL_DBs="auth characters"
  16.  
  17. start_world () {
  18.   PID=`pgrep -u $USER worldserver`
  19.   if [ ! -n "$PID" ]; then
  20.     "$WorldBin" "$WorldParm"
  21.     RC=$?
  22.   fi
  23. }
  24.  
  25. norm_exit () {
  26.   echo "Normal server exit"
  27.   exit
  28. }
  29.  
  30. err_exit () {
  31.   # should actually do something useful here
  32.   echo "`date '+%D %H:%M:%S'` Server error...restarting..." >> "$LogDir/crash.log"
  33. }
  34.  
  35. invalid_exit () {
  36.   echo "`date '+%D %H:%M:%S'` Invalid exit code ($RC)...restarting..." >> "$LogDir/invalid_exits.log"
  37. }
  38.  
  39. maint_exit () {
  40.   echo "`date '+%D %H:%M:%S'` --==Begin Weekly Maintenance==--" >> "$LogDir/maintenance.log"
  41.  
  42.   echo "`date '+%D %H:%M:%S'` Optimizing database(s)" >> "$LogDir/maintenance.log"
  43.   "$CheckBin" -u$SQLUser -p$SQLPass -o --databases $SQL_DBs >> "$LogDir/maintenance.log"
  44.  
  45.   echo "`date '+%D %H:%M:%S'` Stopping authserver" >> "$LogDir/maintenance.log"
  46.   PID=`pgrep -u $USER authserver`
  47.   if [ -n "$PID" ]; then
  48.     kill -INT `pgrep -u $USER authserver`
  49.     sleep 4
  50.     PID=`pgrep -u $USER authserver`
  51.     if [ -n "$PID" ]; then
  52.       kill -KILL `pgrep -u $USER authserver`
  53.       sleep 1
  54.     fi
  55.   fi
  56.  
  57.   echo "`date '+%D %H:%M:%S'` Stopping bnetserver" >> "$LogDir/maintenance.log"
  58.   PID=`pgrep -u $USER bnetserver`
  59.   if [ -n "$PID" ]; then
  60.     kill -INT `pgrep -u $USER bnetserver`
  61.     sleep 4
  62.     PID=`pgrep -u $USER bnetserver`
  63.     if [ -n "$PID" ]; then
  64.       kill -KILL `pgrep -u $USER bnetserver`
  65.       sleep 1
  66.     fi
  67.   fi
  68.  
  69.   echo "`date '+%D %H:%M:%S'` Rotating log files" >> "$LogDir/maintenance.log"
  70.   logrotate -s "$LogDir/rotate.status" "$BaseDir/conf/logrotate.conf"
  71.  
  72.   echo "`date '+%D %H:%M:%S'` Re-launching authserver" >> "$LogDir/maintenance.log"
  73.   PID=`pgrep -f AuthServer`
  74.   if [ ! -n "$PID" ]; then
  75.     screen -a -d -m -t AuthServer "$AuthBin" "$AuthParm"
  76.   fi
  77.  
  78.   echo "`date '+%D %H:%M:%S'` Re-launching bnetserver" >> "$LogDir/maintenance.log"
  79.   PID=`pgrep -f BNetServer`
  80.   if [ ! -n "$PID" ]; then
  81.     screen -a -d -m -t BNetServer "$BNetBin" "$BNetParm"
  82.   fi
  83.  
  84.   echo "`date '+%D %H:%M:%S'` --==End Weekly Maintenance==--" >> "$LogDir/maintenance.log"
  85.   echo >> "$LogDir/maintenance.log"
  86.  
  87. }
  88.  
  89. while true
  90. do
  91.   start_world
  92.   case "$RC" in
  93.     0)
  94.       norm_exit
  95.       ;;
  96.     1)
  97.       err_exit
  98.       ;;
  99.     3)
  100.       maint_exit
  101.       ;;
  102.     *)
  103.       invalid_exit
  104.       ;;
  105.   esac
  106. done
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement