diff --git a/tools/arkmanager b/tools/arkmanager index 3cdb5a7..14bcbf5 100755 --- a/tools/arkmanager +++ b/tools/arkmanager @@ -1062,10 +1062,13 @@ doInstallMod(){ # doBackup(){ local datestamp=`date +"%Y-%m-%d_%H.%M.%S"` + local daystamp=`date +"%Y-%m-%d"` local backupdir="${arkbackupdir}/${datestamp}" + local backupdirdaily="${arkbackupdir}/${daystamp}" local savedir="SavedArks" mkdir -p "$backupdir" - + mkdir -p "$backupdirdaily" + # extract the map name from the active map mod if [ -n "$serverMapModId" ]; then serverMap="$(perl -e ' @@ -1098,9 +1101,9 @@ doBackup(){ cp -p "${arkserverroot}/ShooterGame/Saved/${savedir}/${serverMap##*/}.tmp" "${backupdir##*/}/${serverMap##*/}.ark" fi if [ -f "${backupdir}/${serverMap##*/}.ark" ]; then - echo -e "${NORMAL}[ ${GREEN}OK${NORMAL} ]" + echo -e "${NORMAL}\e[68G[ ${GREEN}OK${NORMAL} ]" else - echo -e "${NORMAL}[ ${RED}FAILED${NORMAL} ]" + echo -e "${NORMAL}\e[68G[ ${RED}FAILED${NORMAL} ]" fi # ARK server uses Lock-Truncate-Write-Unlock @@ -1121,9 +1124,9 @@ doBackup(){ cp -p "${f%.arkprofile}.tmpprofile" "${backupdir}/${f##*/}" fi if [ -s "${backupdir}/${f##*/}" ]; then - echo -e "${NORMAL}[ ${GREEN}OK${NORMAL} ]" + echo -e "${NORMAL}\e[68G[ ${GREEN}OK${NORMAL} ]" else - echo -e "${NORMAL}[ ${RED}FAILED${NORMAL} ]" + echo -e "${NORMAL}\e[68G[ ${RED}FAILED${NORMAL} ]" fi done @@ -1142,9 +1145,9 @@ doBackup(){ cp -p "${f%.arktribe}.tmptribe" "${backupdir}/${f##*/}" fi if [ -s "${backupdir}/${f##*/}" ]; then - echo -e "${NORMAL}[ ${GREEN}OK${NORMAL} ]" + echo -e "${NORMAL}\e[68G[ ${GREEN}OK${NORMAL} ]" else - echo -e "${NORMAL}[ ${RED}FAILED${NORMAL} ]" + echo -e "${NORMAL}\e[68G[ ${RED}FAILED${NORMAL} ]" fi done @@ -1156,12 +1159,42 @@ doBackup(){ cp -p "${f}" "${backupdir}/${f##*/}" fi if [ -f "${backupdir}/GameUserSettings.ini" ]; then - echo -e "${NORMAL}[ ${GREEN}OK${NORMAL} ]" + echo -e "${NORMAL}\e[68G[ ${GREEN}OK${NORMAL} ]" else - echo -e "${NORMAL}[ ${RED}FAILED${NORMAL} ]" + echo -e "${NORMAL}\e[68G[ ${RED}FAILED${NORMAL} ]" fi + + + echo -ne "${NORMAL} Copying Game.ini " + + cp -p "${arkserverroot}/ShooterGame/Saved/Config/LinuxServer/Game.ini" "${backupdir}/Game.ini" + if [ ! -s "${backupdir}/Game.ini" ]; then + sleep 2 + cp -p "${f}" "${backupdir}/${f##*/}" + fi + if [ -f "${backupdir}/Game.ini" ]; then + echo -e "${NORMAL}\e[68G[ ${GREEN}OK${NORMAL} ]" + else + echo -e "${NORMAL}\e[68G[ ${RED}FAILED${NORMAL} ]" + fi + + + #Tar the files and remove the original Backup Directory. Saves about 50MB of disk space per backup + + echo -ne "${NORMAL} Compressing Backup " + + tar -jcf "${arkbackupdir}/${daystamp}/${datestamp}.tar.bz2" -C "${arkbackupdir}" "${datestamp}" + rm -rf ${backupdir} + + if [ -f "${arkbackupdir}/${daystamp}/${datestamp}.tar.bz2" ]; then + echo -e "${NORMAL}\e[68G[ ${GREEN}OK${NORMAL} ]" + else + echo -e "${NORMAL}\e[68G[ ${RED}FAILED${NORMAL} ]" + fi + echo -e "${NORMAL} Created Backup: ${GREEN} ${datestamp}.tar.bz2${NORMAL}" } + # # Print the status of the server (running? online? version?) # diff --git a/tools/arkmanager.cfg b/tools/arkmanager.cfg index a5c9f51..b2a174f 100644 --- a/tools/arkmanager.cfg +++ b/tools/arkmanager.cfg @@ -17,6 +17,7 @@ arkbackupdir="/home/steam/ARK-Backups" # path to ba arkwarnminutes="60" # number of minutes to warn players when using update --warn arkautorestartfile="ShooterGame/Saved/.autorestart" # path to autorestart file arkBackupPreUpdate="false" # set this to true if you want to perform a backup before updating +arkTimeToKeepBackupFiles="10" #Set to Automatically Remove backups older than n days # Update warning messages # Modify as desired, putting the %d replacement operator where the number belongs