Я должен перевести большие объемы данных (> 80 ГБ) по ssh, использующему rsync. Все хорошо работает, но соединение DSL, куда данные резервного копирования отправляется от, отбросит один раз в 24-й в течение максимум 3 минут (переключающий поставщиков, не опция).
Как делают меня:
Автоматически перезапустите передачу, когда соединение вернется?
Удостоверьтесь, что нет случайно двух команд rsync, работающих одновременно?
Полезно будет следующее:
#!/bin/bash
while [ 1 ]
do
rsync -avz --partial source dest
if [ "$?" = "0" ] ; then
echo "rsync completed normally"
exit
else
echo "Rsync failure. Backing off and retrying..."
sleep 180
fi
done
Когда соединение прервется, rsync выйдет с ненулевым кодом выхода. Этот скрипт просто продолжает повторять rsync, позволяя ему продолжать до тех пор, пока синхронизация не завершится нормально.
.