Відновити рекурсивну передачу scp (з rsync?)


14

Я передавав кілька тисяч файлів на ~ 1 Мб через scp, і моє з'єднання було порушено після перших 2-х файлів або близько того. Мені хотілося знати, чи є спосіб відновити рекурсивну передачу без запуску. Щось на зразок

$ scp -r me@host.com:/datafiles/ ./
... Happy Transfer ...
...     BREAK!     ...
$ rsync -P me@host.com:/datafiles/ ./
... Continue transf...

Проблема в тому, що я, здається, не можу виправити синтаксис, якщо це можливо. Чи може хтось пролити світло на те, якщо / як це можна зробити?

PS. Якщо в рядку rsync ви задаєте косу рису після "файлів даних", чи передає це каталог або його вміст? Я бачив суперечливі коментарі, коли гуглив.

Відповіді:


10

якщо ви rsyncing з локальної машини на віддалений хост, це буде працювати:

rsync -avzl -e ssh /directory/with/files/ you@host.com:/new/directory/

Спасибі. Я не думав, що це працює, тому що він почне перелічувати всі мої файли, але я не усвідомлював, що він показує "передачу файлів", що означає лише помітити, що файл був оновлений. Право, якщо мій трансфер залишився, він підхопив реальні (повільніші) передачі.
physicsmichael

Гм, мені ssh -i akey.pemпотрібен, і я не можу змусити -iчастину працювати з цими командами.
ізоморфізми

2
Якщо ви намагаєтеся відновити великий файл, ці опції можуть бути корисні: --partial --inplace --no-whole-file.
Рафаель Ксав'є

@kibitzer - коли він показав вам файл (на віддаленому сервері), як ви знову запустили передачу? Шахта просто збирає файл зі списком і показує мені файл і скільки завантажено. Але він просто зависає, не маючи можливості продовжувати або просунути вихід. Передача розпочалася знову чи мені потрібно щось зробити, щоб її почати?
masterninja01

3
-lне потрібно. Це мається на увазі-a
Гвідо,

11

Наступний рядок повинен зробити фокус для цього:

rsync - частковий - прогрес --rsh = ssh -r me@host.com: / datafiles / ./

Я ніколи раніше не використовував це для рекурсивних каталогів, але коли я надсилав текстові тексти зараз, здавалося, він працює, як очікувалося.


1
Це також працює, якщо ви включите -r =)
physicsmichael

Більшість моїх передач rsync мають тип "rsync -ahP щось / користувач @ хост: / десь /". --Rsh = ssh абсолютно непотрібний. Тоді також -P затягується в - частково і - прогрес.
вбивця

1

Команда rsync, яку ви перерахували, спрацює, якби ви додали лише "-r". але ви також, швидше за все, хочете "-a" і "-v".

А щодо останньої косої риси, me@site.com: / data / еквівалентно / data / *, іншими словами, якщо ви додаєте косу рису, вона копіює весь вміст. але me@site.com: / дані будуть самим каталогом [і, природно, його папками]


1

З'єднання відповідей кібітзера та Тайлера найкраще працювало для мене:

rsync --partial --progress -avzl -e ssh /directory/with/files/ you@host.com:/new/directory/

(rsyncing рекурсивно та показує хід кожного файлу)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.