Я начал делать резервные копии через rsync на удаленный сервер. Это все работает нормально, но 40 гигабайт занимают свое время, и поскольку я получаю динамический IP, он каждый день прерывается. Поэтому каждое утро, просыпаясь, я перезапускаю rsync (если не забыл).
Я мог бы уже использовать cronjob, но мне бы очень хотелось выполнить его сразу после его остановки. Есть ли способ сделать это?
#!/bin/bash
while true
do
echo "your action (e.g., rsync replacing this line)"
#If clean exit, stop running
if [[ $? == 0 ]]
then
break
fi
#speed throttling
sleep 10
done
Да, всякий раз, когда rsync или какая-либо команда останавливается или прерывается неправильно, он выдает сигнал, который не равен 0 (0 означает успех, в противном случае ошибка).
так что просто напишите сценарий, который проверяет статус выхода команды и сохраняет его в файл. затем продолжайте проверять этот файл, скажем, через 5 секунд. так как существующий статус становится ненулевым, перезапустите rsync и вручную установите 0 в статус выхода .. продолжайте и продолжайте.