Давайте предположим, что мы начинаем с команды, запущенной на hostB, как
hostB$ rsync hostA:remotepath localpath
Если hostA имеет нормальную оболочку, мы можем заставить rsync подождать, пока файл не появится, настроив вспомогательную команду, которую он обычно запускает на hostA. В зависимости от среды может работать что-то подобное:
hostB$ rsync --rsync-path='
while [ ! -f remotefile ]; do sleep 1; done;
sleep 5;
rsync' hostA:remotepath localpath
-
while
цикл занята, пока remotefile
станет доступным
- затем
sleep 5
позволяет нескольким секундам установить содержимое
rsync
- нормальная удаленная команда
- должен прийти последним
- не должно заканчиваться символом новой строки, точкой с запятой или комментарием