Это делает то же самое, что и ответ Питера, но дает пользователю возможность выбрать, какой удаленный файл он хочет и где он хочет сохранить (а также выполнить rsync через ssh). Замените USER и HOST на свое имя пользователя и хост соответственно.
#! / Bin / Баш
echo -e "Пожалуйста, введите полный (экранированный) путь к файлу:"
путь чтения -r
echo "Path: $ path"
echo -e "Введите пункт назначения:"
читать -r дст
echo "Направление: $ dst"
в то время как [1]
делать
rsync --progress --partial --append -vz -e ssh "USER @ HOST: $ path" $ dst
если ["$?" = "0"]; тогда
echo "rsync завершен нормально"
Выход
еще
echo "rsync fail. Повторная попытка через минуту ..."
спать 60
фи
сделанный
Используемые здесь параметры rsync включают статистику хода выполнения во время передачи, сохранение частичных файлов при неожиданном сбое и возможность добавлять частично заполненные файлы при возобновлении. Опция -v увеличивает многословность, опция -z включает сжатие (хорошо для медленного соединения, но требует больше ресурсов процессора на обоих концах), а опция -e позволяет нам выполнять эту передачу по ssh (шифрование всегда хорошо).
Примечание. Используйте это только в том случае, если у вас есть доступ с открытым ключом для вашего ssh, в противном случае он будет запрашивать пароль при перезапуске (уничтожая все функции скрипта).
while ./run_script; do echo "Retrying..."; done; echo "Done."
Убедитесь, чтоrun_script
возвращается0
на успех.