From 9a08add72a1875bf83bb1fbf05c7fa76aae5ce39 Mon Sep 17 00:00:00 2001 From: Ben Peddell Date: Tue, 13 Sep 2016 20:29:32 +1000 Subject: [PATCH 1/2] Sync more files; accept missing version.txt --- tools/arkmanager | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/tools/arkmanager b/tools/arkmanager index 1f5f5fc..1175383 100755 --- a/tools/arkmanager +++ b/tools/arkmanager @@ -1417,16 +1417,16 @@ doUpdate() { cp -al "$arkserverroot/ShooterGame/." "$arkStagingDir/ShooterGame" cp -al "$arkserverroot/Engine/." "$arkStagingDir/Engine" cp -al "$arkserverroot/linux64/." "$arkStagingDir/linux64" - cp -al "$arkserverroot/PackageInfo.bin" "$arkStagingDir/PackageInfo.bin" - cp -al "$arkserverroot/steamclient.so" "$arkStagingDir/steamclient.so" - cp -al "$arkserverroot/version.txt" "$arkStagingDir/version.txt" cp -a "$arkserverroot/steamapps/." "$arkStagingDir/steamapps" + cp -l "$arkserverroot/"* "$arkStagingDir" else rsync -a "$arkserverroot/." "$arkStagingDir/." fi rm -rf "$arkStagingDir/ShooterGame/Content/Mods/"* rm -rf "$arkStagingDir/ShooterGame/Saved/"* rm -rf "$arkStagingDir/Engine/Binaries/ThirdParty/SteamCMD/Linux/steamapps" + cp -al "$arkserverroot/ShooterGame/Content/Mods/111111111/." "$arkStagingDir/ShooterGame/Content/Mods/111111111" + cp -l "$arkserverroot/ShooterGame/Content/Mods/111111111.mod" "$arkStagingDir/ShooterGame/Content/Mods/111111111.mod" fi if [ -z "$nodownload" ]; then @@ -1458,7 +1458,12 @@ doUpdate() { fi echo "Not applying update - download-only enabled" elif [ -n "$appupdate" -o -n "$modupdate" -o -n "$bgupdate" ]; then - arkversion="$(<"$arkserverroot/version.txt")" + if [ -f "$arkserverroot/version.txt" ]; then + arkversion="$(<"$arkserverroot/version.txt")" + else + arkversion="$(getCurrentVersion; echo "$instver")" + fi + if isTheServerRunning; then if [ "$updatetype" == "safe" ]; then while [ ! `find $arkserverroot/ShooterGame/Saved/SavedArks -mmin -1 -name ${serverMap##*/}.ark` ]; do @@ -1499,9 +1504,7 @@ doUpdate() { cp -alu --remove-destination "$arkStagingDir/ShooterGame/." "$arkserverroot/ShooterGame" cp -alu --remove-destination "$arkStagingDir/Engine/." "$arkserverroot/Engine" cp -alu --remove-destination "$arkStagingDir/linux64/." "$arkserverroot/linux64" - cp -alu --remove-destination "$arkStagingDir/PackageInfo.bin" "$arkserverroot/PackageInfo.bin" - cp -alu --remove-destination "$arkStagingDir/steamclient.so" "$arkserverroot/steamclient.so" - cp -alu --remove-destination "$arkStagingDir/version.txt" "$arkserverroot/version.txt" + cp -lu --remove-destination "$arkStagingDir/"* "$arkserverroot" cp -au --remove-destination "$arkStagingDir/steamapps/." "$arkserverroot/steamapps" else rsync -a "$arkStagingDir/." "$arkserverroot" @@ -2286,7 +2289,9 @@ printStatus(){ getCurrentVersion echo -e "$NORMAL" "Server build ID: " "$GREEN" $instver "$NORMAL" - echo -e "$NORMAL" "Server version: " "$GREEN" "$(<"$arkserverroot/version.txt")" "$NORMAL" + if [ -f "$arkserverroot/version.txt" ]; then + echo -e "$NORMAL" "Server version: " "$GREEN" "$(<"$arkserverroot/version.txt")" "$NORMAL" + fi } getAllInstanceNames(){ From 6d0af94ee535a56d916fcd6ddb45b90fc349f813 Mon Sep 17 00:00:00 2001 From: Ben Peddell Date: Sat, 17 Sep 2016 21:11:46 +1000 Subject: [PATCH 2/2] Add .arktributetribe files to backup --- tools/arkmanager | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/tools/arkmanager b/tools/arkmanager index 93d9f46..6af84de 100755 --- a/tools/arkmanager +++ b/tools/arkmanager @@ -1557,6 +1557,27 @@ doBackup(){ fi done + # ARK server uses Lock-Truncate-Write-Unlock + echo -e "${NORMAL} Copying ARK tribute tribe files " + for f in "${arkserverroot}/ShooterGame/Saved/${savedir}/"*.arktributetribe; do + echo -ne "${NORMAL} ${f##*/} " + cp -p "${f}" "${backupdir}/${f##*/}" + if [ ! -s "${backupdir}/${f##*/}" ]; then + sleep 2 + cp -p "${f}" "${backupdir}/${f##*/}" + fi + # If both attempts fail, server may have + # crashed between truncate and write + if [ ! -s "${backupdir}/${f##*/}" ]; then + cp -p "${f%.arktribe}.tmptributetribe" "${backupdir}/${f##*/}" + fi + if [ -s "${backupdir}/${f##*/}" ]; then + echo -e "${NORMAL}\e[68G[ ${GREEN}OK${NORMAL} ]" + else + echo -e "${NORMAL}\e[68G[ ${RED}FAILED${NORMAL} ]" + fi + done + # ARK server uses Lock-Truncate-Write-Unlock echo -ne "${NORMAL} Copying GameUserSettings.ini " cp -p "${arkserverroot}/ShooterGame/Saved/Config/LinuxServer/GameUserSettings.ini" "${backupdir}/GameUserSettings.ini"