Я работаю над заданием cron, чтобы проверить и восстановить файлы ark, если требуется.Мне нужно получить самый большой размер файлов .ark, и если файл .TheIsland.ark будет меньше, он автоматически выполнит резервное копирование и скопирует самый большой размер.Теперь, когда у меня есть эта отработанная сторона crontab, одна часть скрипта завершается неудачей.
Что означает:
actualmap=$(find $PWD -type f -printf '%p\n' -name "*.ark"| sort -nr | head -1)
Если я удаляю \ n, это на самом деле работает, но затем он не может сортировать междуих как то нет в отдельных строках.
Вывод, который я получаю в задании cron с \ n:
/srv/daemon-data/da4aaa1b-0ce9-46d2-bd60-5f599cc089ae/ShooterGame/Saved/recovery.sh (which is the recovery script)
Эта же строка кода, запущенная в терминале, выдает правильный вывод:
/srv/daemon-data/da4aaa1b-0ce9-46d2-bd60-5f599cc089ae/ShooterGame/Saved/SavedArks/TheIsland_NewLaunchBackup.bak
Без \ n используя crontab я получаю:
/srv/daemon-data/da4aaa1b-0ce9-46d2-bd60-5f599cc089ae/ShooterGame/Saved/SavedArks/TheIsland_27.06.2019_21.46.20.ark/srv/daemon-data/da4aaa1b-0ce9-46d2-bd60-5f599cc089ae/ShooterGame/Saved/SavedArks/TheIsland_28.06.2019_15.15.34.ark
Я приложил полный код, который работает вручную.
#!/bin/bash
export DISPLAY=:0.0
##ARK Map Recovery Script
cd /srv/daemon-data/da4aaa1b-0ce9-46d2-bd60-5f599cc089ae/ShooterGame/Saved/SavedArks
#Check file size of current ark map
file=TheIsland.ark
echo $file
currentsize=$(wc -c <"$file")
echo $currentsize
#Find biggest map file.
actualmap=$(find $PWD -type f -printf '%p\n' -name "*.ark"| sort -nr | head -1)>/srv/daemon-data/da4aaa1b-0ce9-46d2-bd60-5f599cc089ae/ShooterGame/Saved/SavedArks/log.txt
echo $PWD
echo $actualmap
biggestsize=$(wc -c < "$actualmap")
echo $biggestsize
if [ $currentsize -ge $biggestsize ]; then
echo No map recovery required as over $biggestsize bytes
else
echo Uh Oh! size is under $biggestsize bytes Attempting map recovery
echo Checking for Backup dir and creating if necessary
mkdir -p BackupFiles
#Move old map into backup dir in the saved location
echo Moving old Map File to backup dir
mv $file BackupFiles
#Stop server using docker commands
echo Stopping servers
docker kill da4aaa1b-0ce9-46d2-bd60-5f599cc089ae
#Copy biggest map file with correct name
echo Copying backup file
cp $actualmap $file
fi