diff options
Diffstat (limited to 'server.sh')
-rwxr-xr-x | server.sh | 80 |
1 files changed, 69 insertions, 11 deletions
@@ -2,22 +2,32 @@ #CONFIG JRE_JAVA="java" -JVM_ARGS="-Xms9G -Xmx9G" -JAR="fabric-server-launch.jar" +JVM_ARGS="-Xms10G -Xmx10G" +JAR="server.jar" JAR_ARGS="-nogui" SCREEN_WINDOW="minecraftserverscreen" WORLD_NAME="world" LOGFILE="mcserver.log" #HOOKS -BACKUP_HOOK="echo HOOK" +BACKUP_HOOK="echo $ARCHNAME" function send_cmd () { screen -S $SCREEN_WINDOW -p 0 -X stuff "$1^M" } function server_start() { - screen -L -Logfile "$LOGFILE" -S $SCREEN_WINDOW -p 0 -d -m $JRE_JAVA $JVM_ARGS -jar $JAR $JAR_ARGS + screen -list $SCREEN_WINDOW + if [ $? -eq 0 ] + then + echo "It seems a server is already running. If this is not the case,\ + manually attach to the running screen and close it." + exit 1 + fi + + rm -f $LOGFILE + screen -L -Logfile "$LOGFILE" -S $SCREEN_WINDOW -p 0 -d -m \ + $JRE_JAVA $JVM_ARGS -jar $JAR $JAR_ARGS exit } @@ -33,10 +43,18 @@ function server_attach() { function server_status() { screen -list $SCREEN_WINDOW + + if [ $? -eq 0 ] + then + echo "Server seems to be running. attach to be sure" + else + fi + echo "Server is not running" exit } -function server_backup() { +function server_backup_safe() { + echo "Detected running server. Disabling autosave" send_cmd "save-off" send_cmd "save-all flush" echo "Waiting for save... If froze, run /save-on to re-enable autosave!!" @@ -48,15 +66,55 @@ function server_backup() { done echo "Done! starting backup..." - local ARCHNAME="backup/$WORLD_NAME-backup_`date +%d-%m-%y-%T`.tar.gz" - tar -czvf "$ARCHNAME" "./$WORLD_NAME" - - echo "Done! Saved in $ARCHNAME" + create_backup_archive + local RET=$? + echo "Re-enabling auto-save" send_cmd "save-on" - echo "Running Backup-Hook" - $BACKUP_HOOK + if [ $RET -eq 0 ] + then + echo Running backup hook + $BACKUP_HOOK + fi +} + +function server_backup_unsafe() { + echo "No running server detected. Running Backup" + + create_backup_archive + + if [ $? -eq 0 ] + then + echo Running backup hook + $BACKUP_HOOK + fi +} + +function create_backup_archive() { + ARCHNAME="backup/$WORLD_NAME-backup_`date +%d-%m-%y-%T`.tar.gz" + tar -czvf "$ARCHNAME" "./$WORLD_NAME" + + if [ ! $? -eq 0 ] + then + echo "TAR failed. No Backup created." + rm $ARCHNAME #remove (probably faulty) archive + return 1 + else + echo $ARCHNAME created. + fi +} + +function server_backup() { + screen -list $SCREEN_WINDOW > /dev/null + if [ $? -eq 0 ] + then #Server is running + server_backup_safe + else #Not running + server_backup_unsafe + fi + + exit } case $1 in |