Created
January 17, 2016 09:30
-
-
Save PhanaticD/98ae834ed2f20bce7985 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
SERVERNAME="placeholder" | |
SERVICE="placeholder.jar" | |
MCPATH="/home/user/placeholder" | |
BACKUPPATH="/hd2/backups/placeholder" | |
INVOCATION="java -Xms2G -Xmx8G -jar $SERVICE" | |
mc_start() { | |
if ps ax | grep -v grep | grep -v -i SCREEN | grep $SERVICE > /dev/null | |
then | |
PID="`ps ax | grep -v grep | grep -v -i SCREEN | grep $SERVICE | awk '{print $1}'`" | |
echo " * $SERVERNAME was already running! (pid $PID)" | |
exit 1; | |
else | |
echo " * $SERVERNAME was not already running. Starting.." | |
cd $MCPATH && screen -dmS $SERVERNAME $INVOCATION | |
sleep 1 | |
echo " * Checking if $SERVERNAME has started" | |
if ps ax | grep -v grep | grep -v -i SCREEN | grep $SERVICE > /dev/null | |
then | |
PID="`ps ax | grep -v grep | grep -v -i SCREEN | grep $SERVICE | awk '{print $1}'`" | |
echo " * $SERVERNAME is now running. (pid $PID)" | |
else | |
echo " * Could not start $SERVERNAME." | |
exit 1; | |
fi | |
fi | |
} | |
mc_stop() { | |
if ps ax | grep -v grep | grep -v -i SCREEN | grep $SERVICE > /dev/null | |
then | |
PID="`ps ax | grep -v grep | grep -v -i SCREEN | grep $SERVICE | awk '{print $1}'`" | |
echo " * $SERVERNAME is running (pid $PID), shutting down" | |
echo " * Notifying users of shutdown..." | |
screen -p 0 -S $SERVERNAME -X eval 'stuff "say SERVER RESTARTING\015"' | |
sleep 4 | |
echo " * Stopping $SERVERNAME..." | |
screen -p 0 -S $SERVERNAME -X eval 'stuff "stop\015"' | |
else | |
echo " * $SERVERNAME was not running!" | |
exit 1; | |
fi | |
sleep 10 | |
if ps ax | grep -v grep | grep -v -i SCREEN | grep $SERVICE > /dev/null | |
then | |
echo " * $SERVERNAME could not be shutdown!" | |
exit 1; | |
else | |
echo " * $SERVERNAME is shut down." | |
fi | |
} | |
mc_status() { | |
if ps ax | grep -v grep | grep -v -i SCREEN | grep $SERVICE > /dev/null | |
then | |
PID="`ps ax | grep -v grep | grep -v -i SCREEN | grep $SERVICE | awk '{print $1}'`" | |
echo " * $SERVERNAME (pid $PID) is running" | |
else | |
echo " * $SERVERNAME is not running." | |
exit 1; | |
fi | |
} | |
mc_info() { | |
if ps ax | grep -v grep | grep -v -i SCREEN | grep $SERVICE > /dev/null | |
then | |
PID="`ps ax | grep -v grep | grep -v -i SCREEN | grep $SERVICE | awk '{print $1}'`" | |
RSS="`ps -p $PID --format rss | tail -n 1`" | |
echo " - $SERVERNAME size : `cd $MCPATH && du -hs`" | |
echo " - Process ID : "$PID"" | |
echo " - Memory Usage : `expr $RSS / 1024` Mb ($RSS kb)" | |
echo " - Active Connections : " | |
netstat -tna | grep -E "Proto|25565" | |
else | |
echo " * $SERVERNAME is not running." | |
fi | |
} | |
mc_command() { | |
screen -p 0 -S $SERVERNAME -X eval "stuff '$1'\015" | |
} | |
mc_backup() { | |
echo " * Backing up $SERVERNAME" | |
screen -p 0 -S $SERVERNAME -X eval 'stuff "save-all\015"' | |
NOW="`date "+%Y-%m-%d"`" | |
zip -r $BACKUPPATH/$SERVERNAME_$NOW.zip $MCPATH | |
} | |
mc_removeoldbackups() { | |
NUMBEROFBACKUPS="`find \"$BACKUPPATH\" -name \"$SERVERNAME*\" -type f -mtime +5 | wc -l`" | |
if [ $NUMBEROFBACKUPS -ge 1 ] | |
then | |
echo " * Removing map backups older than 5 days" | |
cd $BACKUPPATH && find . -name "$SERVERNAME*" -type f -mtime +5 | xargs rm -fv | |
echo " * Removed old map backups" | |
else | |
echo " * No map backups older than 5 days to remove" | |
fi | |
} | |
mc_kill() { | |
PID="`ps ax | grep -v grep | grep -v -i SCREEN | grep $SERVICE | awk '{print $1}'`" | |
kill -9 $PID | |
echo " * killing $PID" | |
} | |
case "$1" in | |
start) | |
mc_start | |
;; | |
stop) | |
mc_stop | |
;; | |
kill) | |
mc_kill | |
;; | |
res) | |
screen -r $SERVERNAME | |
;; | |
restart) | |
mc_stop | |
sleep 10 | |
mc_start | |
;; | |
status) | |
mc_status | |
;; | |
info) | |
mc_info | |
;; | |
command) | |
mc_command "$2" | |
;; | |
backup) | |
mc_backup | |
;; | |
removeoldbackups) | |
mc_removeoldbackups | |
;; | |
*) | |
echo " * Usage: $0 {start|stop|kill|restart|status|info|command|res|backup|removeoldbackups}" | |
exit 1; | |
;; | |
esac | |
exit 0; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment