Я передавал несколько тысяч файлов каждый ~ 1MB через scp, и мое соединение разрывалось после первых 2k файлов или около того. Я хотел знать, есть ли способ возобновить рекурсивную передачу без начала заново. Что-то вроде
$ scp -r me@host.com:/datafiles/ ./
... Happy Transfer ...
... BREAK! ...
$ rsync -P me@host.com:/datafiles/ ./
... Continue transf...
Проблема в том, что я не могу получить правильный синтаксис, если это возможно. Кто-нибудь может пролить свет на то, если / как это можно сделать?
PS. Если вы указываете косую черту после «datafiles» в строке rsync, передает ли это каталог или его содержимое? Я видел противоречивые комментарии, когда гуглил.
ssh -i akey.pem
это требуется, и я не могу заставить-i
часть работать с этими командами.--partial --inplace --no-whole-file
.-l
не обязательно. Это подразумевается-a
Для этого нужно выполнить следующую строку:
rsync --partial --progress --rsh = ssh -r me@host.com: / datafiles / ./
Я никогда не использовал это для рекурсивных каталогов прежде, но когда я написал это только сейчас, это, казалось, работало как ожидалось.
источник
Команда rsync, которую вы перечислили, будет работать, если вы добавите только «-r». но вы также, скорее всего, захотите "-a" и "-v".
Что касается завершающей косой черты, me@site.com: / data / эквивалентна / data / *, другими словами, если вы добавите косую черту, она скопирует все содержимое. но me@site.com: / data будет сам каталог [и, естественно, его подпапки]
источник
Объединение ответов Кибицера и Тайлера сработало для меня лучше всего:
(рекурсивное выполнение и отображение прогресса каждого файла)
источник