-4

Поэтому, в основном, я хочу, чтобы этот сценарий делал, например, каждые 300 секунд делать копию файла, но чередовать создание файла «savegame.backup1», а затем в следующие 300 секунд передать «savegame.backup2» и затем вернуться назад. для резервного копирования1.

Кажется, мой таймер не повторяется, и я не уверен, как вообще завершить этот сценарий.

Для контекста, большая часть кода, который я использовал, была из Google, часть была сделана на основе личных знаний. Я не могу найти то, что мне не хватает.

Спасибо

#!/bin/bash
GameType="Sandbox"  #Sandbox, Survival, etc.
SaveName="07-01-2017_04-52-11"  #Make sure you copy the folder name.
Timeout=$((5))  #Timeout in seconds. The default of 300 (5 minutes) is likely adequate.

#No need to change anything below.
GameName="Project Zomboid"
SERVICE=ProjectZomboid64 #Change this to ProjectZomboid32 if you're using 32bit java!
steam steam://rungameid/108600
# Checks to see if folder exists - if not, one will be made.
mkdir -p "$HOME/Zomboid/Saves/Backups/$SaveName"

#Loop start
while [ $Timeout -gt 0 ]; do
    clear && echo -ne "Creating a backup in" $Timeout "seconds."
    sleep 1
    : $((Timeout--))
    done
    clear
    if ps ax | grep -v grep | grep $SERVICE > /dev/null
        then
            cp "$HOME/Zomboid/Saves/$GameType/$SaveName/map_p.bin" "$HOME/Zomboid/Saves/Backups/$SaveName/map_p.bin.backup1"
            #Need to alternate between the two each time it loops. Backup1 the first time, Backup2 the second, Backup1 the third...
            #cp "$HOME/Zomboid/Saves/$GameType/$SaveName/map_p.bin" "$HOME/Zomboid/Saves/Backups/$SaveName/map_p.bin.backup2"
            echo "$GameName is running. Backup made." #ERROR CHECKING
        else
            #Loop should end here, and prevent any further repeating of the loop.
            read -r -p "$GameName is not detected as running, and no further backups will be made."
        fi
    echo "Outside of loop." #ERROR CHECKING
    sleep 5s

1 ответ1

-1
i=1
while :;do
if [ $(pgrep $SERVICE) ];then
    cp "$HOME/Zomboid/Saves/$GameType/$SaveName/map_p.bin" "$HOME/Zomboid/Saves/Backups/$SaveName/map_p.bin.backup$i"
    [ $i = 1 ] && i=2 || i=1
fi
sleep 300
done

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .