diff options
-rw-r--r-- | .SRCINFO | 8 | ||||
-rw-r--r-- | PKGBUILD | 8 | ||||
-rw-r--r-- | forged-backup.service | 2 | ||||
-rw-r--r-- | forged.conf | 1 | ||||
-rwxr-xr-x | forged.sh | 26 |
5 files changed, 23 insertions, 22 deletions
@@ -1,7 +1,7 @@ pkgbase = forge-server pkgdesc = Minecraft Forge server unit files, script and jar pkgver = 1.14.4_28.1.0 - pkgrel = 9 + pkgrel = 10 url = https://minecraftforge.net install = forge-server.install arch = any @@ -24,11 +24,11 @@ pkgbase = forge-server source = forged.sh source = forge-1.14.4-28.1.0-installer.jar::https://files.minecraftforge.net/maven/net/minecraftforge/forge/1.14.4-28.1.0/forge-1.14.4-28.1.0-installer.jar source = LICENSE-forge-server-1.14.4-28.1.0.txt::https://raw.githubusercontent.com/MinecraftForge/MinecraftForge/1.14.x/LICENSE.txt - sha512sums = e9a391a330320a7aea127a3e8ad399d8d6e3c926eac2c0df7a4e550ba61cc13fec737f7e984bd98b9e1f9f9d5a654ee241eeef6a2e433ec845e300ef29405f62 + sha512sums = 413ebdaffd6c2c6d5a75e455ccf533f984331f13fe5eb8c4be85f09fb52cbb375be4bf24410b447618ed5363479a48a751757eab0e3d6c9b052f4eaca1b15fdc sha512sums = a47b5a9e2262877008a5dcae3a833fe99f911631d6fdbe97b95e0451e1dd2b5a26b6f7b843dd6a8ccd4f663cf5c3bca53a89a1d3aabb363281ab6c6fb19e41a4 sha512sums = d6bde61a7aa479b85e35b4a3eccb9b3237a6c97f8919b3d704434f1df15672b74c7ae9ca9473eea6a0593e6e80892a2510782115185c1b7fe332720ccb78a7bd - sha512sums = 6c82f776e337d8c5eca11fea87ce6f6cfe4a5e881db947336d9c8605bd36a4ce0b7b8811e11d79285dd855cd2bdc3f65526b7aaa8d47cb14a7b8cf452462329c - sha512sums = 2a9a911e9290573718d7cf00a834e4dc0211c63a2de4d132c0b6c418d2616084dee68b934ae6e6554a0f6a037e35620d2df8b8d736acbd2fe8f71e0656c3ea46 + sha512sums = e8b6fa8da94f11648ad3fa024d5238ab96d533a20fd1bcfd1c0e23cd1f18827ed6efc9edbdf8b2c7dd7095f2383131b2e6e641ba64d1cbce2f3ee109540bc818 + sha512sums = 76f038abf51fe1ff503118611b3e2f931349b0be9d444a521703b82406d8602099851e4006887c88d24468b6ea72e5ba1b63e8846420fb45e5f68f14aa9378d4 sha512sums = 2890b40882c6b91a96024ba7ace6feef85530be74bfde4441fd55ca5244b5a739ccfd8d2d99b47e6fb97b1acc3ee5aa5a648d637f8afa2f353abdb1986d4dcb9 sha512sums = 3da10d63a5edee4bc8bcd3d5c2730771062f7fa58626a8c51635fbe96bfbceca3ff6937cfaad3e17f16a94ef95137f7c78cc6dac1c846a6b9a8f18d3c6355973 @@ -5,7 +5,7 @@ ## Contributor: Philip Abernethy <chais.z3r0@gmail.com> ## Contributor: sowieso <sowieso@dukun.de> -_ver="1.14.4_28.1.0-9" +_ver="1.14.4_28.1.0-10" _minecraft_ver_latest="1.14.4" IFS="-" read -ra _ver_temp <<< "$_ver" @@ -45,11 +45,11 @@ source=("forged-backup.service" "forged.conf" "forged.sh") noextract=("forge-${_pkgver}.jar") -sha512sums=('e9a391a330320a7aea127a3e8ad399d8d6e3c926eac2c0df7a4e550ba61cc13fec737f7e984bd98b9e1f9f9d5a654ee241eeef6a2e433ec845e300ef29405f62' +sha512sums=('413ebdaffd6c2c6d5a75e455ccf533f984331f13fe5eb8c4be85f09fb52cbb375be4bf24410b447618ed5363479a48a751757eab0e3d6c9b052f4eaca1b15fdc' 'a47b5a9e2262877008a5dcae3a833fe99f911631d6fdbe97b95e0451e1dd2b5a26b6f7b843dd6a8ccd4f663cf5c3bca53a89a1d3aabb363281ab6c6fb19e41a4' 'd6bde61a7aa479b85e35b4a3eccb9b3237a6c97f8919b3d704434f1df15672b74c7ae9ca9473eea6a0593e6e80892a2510782115185c1b7fe332720ccb78a7bd' - '6c82f776e337d8c5eca11fea87ce6f6cfe4a5e881db947336d9c8605bd36a4ce0b7b8811e11d79285dd855cd2bdc3f65526b7aaa8d47cb14a7b8cf452462329c' - '2a9a911e9290573718d7cf00a834e4dc0211c63a2de4d132c0b6c418d2616084dee68b934ae6e6554a0f6a037e35620d2df8b8d736acbd2fe8f71e0656c3ea46' + 'e8b6fa8da94f11648ad3fa024d5238ab96d533a20fd1bcfd1c0e23cd1f18827ed6efc9edbdf8b2c7dd7095f2383131b2e6e641ba64d1cbce2f3ee109540bc818' + '76f038abf51fe1ff503118611b3e2f931349b0be9d444a521703b82406d8602099851e4006887c88d24468b6ea72e5ba1b63e8846420fb45e5f68f14aa9378d4' '2890b40882c6b91a96024ba7ace6feef85530be74bfde4441fd55ca5244b5a739ccfd8d2d99b47e6fb97b1acc3ee5aa5a648d637f8afa2f353abdb1986d4dcb9' '3da10d63a5edee4bc8bcd3d5c2730771062f7fa58626a8c51635fbe96bfbceca3ff6937cfaad3e17f16a94ef95137f7c78cc6dac1c846a6b9a8f18d3c6355973') diff --git a/forged-backup.service b/forged-backup.service index d4bc5a9f0fc5..7998f600abcb 100644 --- a/forged-backup.service +++ b/forged-backup.service @@ -3,7 +3,7 @@ Description=Minecraft Forge Server World Backup After=local-fs.target [Service] -Type=forking +Type=simple ExecStart=/usr/bin/forged backup User=forge Group=forge diff --git a/forged.conf b/forged.conf index 50b475e4ab09..5bcac00058ca 100644 --- a/forged.conf +++ b/forged.conf @@ -5,6 +5,7 @@ SERVER_ROOT="/srv/forge" BACKUP_DEST="/srv/forge/backup" BACKUP_PATHS="world" # World paths separated by spaces relative to SERVER_ROOT +BACKUP_FLAGS="-z" KEEP_BACKUPS="10" GAME_USER="forge" MAIN_EXECUTABLE="forge.jar" diff --git a/forged.sh b/forged.sh index a7e1be5c0fe3..7b4598ce6f0b 100755 --- a/forged.sh +++ b/forged.sh @@ -12,6 +12,7 @@ declare -r game="forge" [[ -n "${SERVER_ROOT}" ]] && declare -r SERVER_ROOT=${SERVER_ROOT} || SERVER_ROOT="/srv/${game}" [[ -n "${BACKUP_DEST}" ]] && declare -r BACKUP_DEST=${BACKUP_DEST} || BACKUP_DEST="/srv/${game}/backup" [[ -n "${BACKUP_PATHS}" ]] && declare -r BACKUP_PATHS=${BACKUP_PATHS} || BACKUP_PATHS="world" +[[ -n "${BACKUP_FLAGS}" ]] && declare -r BACKUP_FLAGS=${BACKUP_FLAGS} || BACKUP_FLAGS="-z" [[ -n "${KEEP_BACKUPS}" ]] && declare -r KEEP_BACKUPS=${KEEP_BACKUPS} || KEEP_BACKUPS="10" [[ -n "${GAME_USER}" ]] && declare -r GAME_USER=${GAME_USER} || GAME_USER="forge" [[ -n "${MAIN_EXECUTABLE}" ]] && declare -r MAIN_EXECUTABLE=${MAIN_EXECUTABLE} || MAIN_EXECUTABLE="forge.jar" @@ -30,7 +31,6 @@ declare -r game="forge" # Additional configuration options which only few may need to alter [[ -n "${GAME_COMMAND_DUMP}" ]] && declare -r GAME_COMMAND_DUMP=${GAME_COMMAND_DUMP} || GAME_COMMAND_DUMP="/tmp/${myname}_${SESSION_NAME}_command_dump.txt" -# shellcheck source=forged.conf # Variables passed over the command line will always override the one from a config file source /etc/conf.d/"${game}" 2>/dev/null || >&2 echo "Could not source /etc/conf.d/${game}" @@ -302,26 +302,26 @@ backup_files() { fi echo "Starting backup..." - FILE="$(date +%Y_%m_%d_%H.%M.%S).tar.gz" + fname="$(date +%Y_%m_%d_%H.%M.%S).tar.gz" ${SUDO_CMD} mkdir -p "${BACKUP_DEST}" if ${SUDO_CMD} screen -S "${SESSION_NAME}" -Q select . > /dev/null; then game_command save-off game_command save-all sync && wait - ${SUDO_CMD} tar -C "${SERVER_ROOT}" -czf "${BACKUP_DEST}/${FILE}" --totals ${BACKUP_PATHS} 2>&1 | grep -v "tar: Removing leading " + ${SUDO_CMD} tar -C "${SERVER_ROOT}" -cf "${BACKUP_DEST}/${fname}" ${BACKUP_PATHS} --totals ${BACKUP_FLAGS} 2>&1 | grep -v "tar: Removing leading " game_command save-on else - ${SUDO_CMD} tar -C "${SERVER_ROOT}" -czf "${BACKUP_DEST}/${FILE}" --totals ${BACKUP_PATHS} 2>&1 | grep -v "tar: Removing leading " + ${SUDO_CMD} tar -C "${SERVER_ROOT}" -cf "${BACKUP_DEST}/${fname}" ${BACKUP_PATHS} --totals ${BACKUP_FLAGS} 2>&1 | grep -v "tar: Removing leading " fi echo -e "\e[39;1mbackup completed\e[0m\n" echo -n "Only keeping the last ${KEEP_BACKUPS} backups and removing the other ones..." - BACKUP_COUNT=$(for f in "${BACKUP_DEST}"/[0-9_.]*; do echo "${f}"; done | wc -l) - if [[ $(( BACKUP_COUNT - KEEP_BACKUPS )) -gt 0 ]]; then - for old_backup in $(for f in "${BACKUP_DEST}"/[0-9_.]*; do echo "${f}"; done | head -n"$(( BACKUP_COUNT - KEEP_BACKUPS ))"); do + backup_count=$(for f in "${BACKUP_DEST}"/[0-9_.]*; do echo "${f}"; done | wc -l) + if [[ $(( backup_count - KEEP_BACKUPS )) -gt 0 ]]; then + for old_backup in $(for f in "${BACKUP_DEST}"/[0-9_.]*; do echo "${f}"; done | head -n"$(( backup_count - KEEP_BACKUPS ))"); do ${SUDO_CMD} rm "${old_backup}"; done - echo -e "\e[39;1m done\e[0m ($(( BACKUP_COUNT - KEEP_BACKUPS)) backup(s) pruned)" + echo -e "\e[39;1m done\e[0m ($(( backup_count - KEEP_BACKUPS)) backup(s) pruned)" else echo -e "\e[39;1m done\e[0m (no backups pruned)" fi @@ -358,10 +358,10 @@ backup_restore() { if [[ $user_choice =~ ^-?[0-9]+$ ]]; then n=1 for f in "${BACKUP_DEST}"/[0-9_.]*; do - [[ ${n} -eq $user_choice ]] && FILE="$f" + [[ ${n} -eq $user_choice ]] && fname="$f" n=$(( n + 1 )) done - if [[ -z $FILE ]]; then + if [[ -z $fname ]]; then >&2 echo -e "\e[39;1mFailed\e[0m to interpret your input. Please enter the digit of the presented options." exit 5 fi @@ -372,10 +372,10 @@ backup_restore() { elif [[ $# -eq 1 ]]; then # Check for the existance of the specified file if [[ -f "$1" ]]; then - FILE="$1" + fname="$1" else if [[ -f "${BACKUP_DEST}"/"$1" ]]; then - FILE="${BACKUP_DEST}"/"$1" + fname="${BACKUP_DEST}"/"$1" else >&2 echo -e "Sorry, but '$1', is \e[39;1mnot a valid file\e[0m, neither in your current directory nor in the backup folder." exit 4 @@ -388,7 +388,7 @@ backup_restore() { fi echo "Restoring backup..." - if ${SUDO_CMD} tar -xf "${FILE}" -C "${SERVER_ROOT}" 2>&1; then + if ${SUDO_CMD} tar -xf "${fname}" -C "${SERVER_ROOT}" 2>&1; then echo -e "\e[39;1mRestoration completed\e[0m" else echo -e "\e[39;1mFailed to restore backup.\e[0m" |