aboutsummaryrefslogtreecommitdiff
path: root/server.sh
diff options
context:
space:
mode:
Diffstat (limited to 'server.sh')
-rwxr-xr-xserver.sh80
1 files changed, 69 insertions, 11 deletions
diff --git a/server.sh b/server.sh
index e1722ed..2dd284b 100755
--- a/server.sh
+++ b/server.sh
@@ -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