再帰的なscp転送を再開します(rsyncを使用しますか?)


14

私はscpを介してそれぞれ数千個のファイルを〜1MB転送しており、最初の2kファイルほどで接続が切断されました。最初からやり直さずに再帰転送を再開する方法があるかどうかを知りたかった。何かのようなもの

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

問題は、可能な場合は構文を正しく取得できないように見えることです。誰がそれができるか/どのようにそれを行うことができるかについていくつかの光を当てることができますか?

PS。rsync行の「datafiles」の後にスラッシュを指定すると、ディレクトリまたはその内容が転送されますか?Googleで検索したときに矛盾したコメントが表示されました。

回答:


10

ローカルマシンからリモートホストにrsyncしている場合、これは機能します。

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

ありがとう。すべてのファイルを一覧表示するため、これが機能しているとは思いませんでしたが、ファイルが最新であることに気付くだけの「ファイル転送」を示していることに気づきませんでした。転送は中断され、実際の(遅い)転送で処理されました。
物理マイケル

うーん、私にとってssh -i akey.pemは必須であり-i、これらのコマンドで動作する部分を得ることができません。
同型

2
大きなファイルを再開しようとしている場合、次のオプションが役立ちます--partial --inplace --no-whole-file
ラファエルザビエル

@kibitzer-(リモートサーバー上の)ファイルが表示されたら、どのようにして転送を再開しましたか?私はリストファイルを作成し、ファイルとアップロードされた量を表示します。ただし、出力を続行または進行するオプションがなく、ハングするだけです。転送が再度開始されましたか、それを開始するために何かする必要がありますか?
masterninja01 14年

3
-l必要ありません。によって暗示されている-a
グイド

11

次の行でそのためのトリックを実行する必要があります。

rsync --partial --progress --rsh = ssh -r me@host.com:/ datafiles / ./

以前は再帰ディレクトリにこれを使用したことはありませんでしたが、テキストメッセージを送信したとき、期待どおりに動作するように見えました。


1
-r =)を含める限り、これも機能します
。-物理マイケル

私のrsync転送のほとんどは、「rsync -ahP something / user @ host:/ somewhere /」タイプです。--rsh = sshは完全に不要です。次に、-Pも--partialおよび--progressにドラッグします。
キラーミスト

1

「-r」のみを追加した場合、リストしたrsyncコマンドは機能します。しかし、「-a」と「-v」も必要になるでしょう。

末尾のスラッシュについては、me @ site.com:/ data /は/ data / *と同等です。つまり、スラッシュを追加すると、すべての内容がコピーされます。ただし、me​​ @ site.com:/ dataはディレクトリそのものです(当然、そのサブフォルダも)


1

kibitzerの回答とTylerの回答をマージするのが最適でした。

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

(rsyncing再帰的および各ファイルの進行状況を表示)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.