diff --git a/README.md b/README.md index 7e50637..135caa4 100644 --- a/README.md +++ b/README.md @@ -46,6 +46,9 @@ Minecraftd is also available in the [AUR][aur]. `connect` : Launch interactive minecraft server stdin prompt. +`backup` +: Create a backup of the server folder + `-H`, `--help` : Display help and exit. diff --git a/minecraftd b/minecraftd index 084d01e..2525b5e 100755 --- a/minecraftd +++ b/minecraftd @@ -25,7 +25,8 @@ COMMANDS connect, con Launch interactive minecraft server input prompt. - + bck, backup + Create a backup of the server folder. -H, --help Display help text and exit. @@ -54,6 +55,7 @@ flg_cmd=false flg_con=false flg_srt=false flg_stp=false +flg_bck=false jar='/usr/share/java/minecraft-server.jar' mem='2g' mem_srt='1g' @@ -61,6 +63,7 @@ mem_tmp= reqs=(java) srv='/srv/minecraft' + ## functions :: error() { msg_error "$@"; exit 5 ;} msg() { printf "\e[1;38;5;12m=> \e[0;38;5;15m$1\e[0m\n" "${@:2}" ;} @@ -103,6 +106,7 @@ case "$1" in con|connect) flg_con=true ;; srt|start) flg_srt=true ;; stp|stop) flg_stp=true ;; + bck|backup) flg_backup=true ;; -H|--help) print_help; exit 0 ;; *) error "unknown option: $1" ;; esac @@ -172,7 +176,24 @@ if [ "$flg_con" = true ]; then done fi -# TODO: backup command +#create a backup + +if [ "$flg_bck" = true ]; then + msg 'Starting backup!' + printf 'save-all' >"$fifo" + sleep 4 + printf 'save-off' >"$fifo" + sleep 4 + bck="/backups" + if [ ! -d $bck ]; then + mkdir $bck + fi + name="$bck/$(date '+%H_%M_%S_%d_%m_%Y').tar" + tar -cvf $name $srv + gzip $name + printf 'save-on' >"$fifo" + msg 'Backup complete!' +fi # stop server: if [ "$flg_stp" = true ]; then