Может rsync ждать файл создан, а затем скопировать его в то же время - PullRequest
0 голосов
/ 16 апреля 2019

Я хочу скопировать файл из A в B, используя "rsync", но файл не существует прямо сейчас в A. Я запускаю команду "rsync" на B, могу ли я позволить "rsync" ждать, пока файл не будетсоздание в A, и копировать его одновременно?

1 Ответ

0 голосов
/ 18 апреля 2019

Давайте предположим, что мы начинаем с команды, запущенной на 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 - нормальная удаленная команда
    • должен прийти последним
    • не должно заканчиваться символом новой строки, точкой с запятой или комментарием
...