rsyncを使用して大きなディレクトリをNASにコピーする必要があります。すでにコピーされたファイルのコピーを避けるため、rsyncはソースと宛先が異なる場合にのみファイルをコピーします。ファイルが異なるときにrsyncでコピーする
答えて
なぜ同じファイルをスキップするのは、人々がrsyncを使う理由の全体です。これはrsyncのデフォルト動作です。唯一のオプションは、あなたが使用したい時間のほとんどは-a
です:
rsync -a -P <source> <dest>
-P
だけで進行状況を表示意味と-a
は、「アーカイブ」を意味し、それは、ファイルをコピーする場合、可能な限り同一のものとしてコピーを作成してみてください」という意味します"(アクセス許可、所有権、タイムスタンプなどを保持しようとする)、また、"必要な場合にのみファイルを更新する "という意味です。 「<dest>
が最新のバックアップ<source>
であることを確認する」のようなものです。
しかし、デフォルトではrsync
は、ファイルサイズが同じで最終変更日が同じ場合、すでに2つのファイルが同一であるとみなします。もちろん、2つのファイルも同じサイズと同じ最終変更日を持ち、同一ではない場合があります。だから、非常に最初の時間のためにそのコマンドを実行すると、あなたは更新を必要とする可能性があるファイルやものが、これはしようとしないかわからないとき:
rsync -a -c -P <source> <dest>
-c
手段は、単にサイズと日付、チェックサムに依存しませんすべてのファイルをチェックサムを比較します。チェックサムが同一である場合のみ、ファイルを同一と見なします。 rsyncはファイル全体をチェックサムする必要はないことに注意してください。大きなファイルは小さなチャンクに分割され、変更されたチャンクだけが転送されるため、すべてのチャンクは個別にチェックサムされます。
このようにチェックサムを設定しても、ネットワーク接続を介してコピーするときに多くの時間を節約できます。ローカルにコピーするときは、すべてをコピーするだけですべてのチェックサムを行うよりもおそらく速いので、いつでも保存することはできません。したがって、ソースと宛先の両方がローカルドライブである場合、プレーンコピーは常にチェックサムrsyncを速度で上回ります。その場合には
cp -a -v <source> <dest>
を使用するか、あなたのシステムが-a
を知らない場合、-a
と同じだ
cp -pPR -v <source> <dest>
を使用しています。再び、-v
はちょうどいくつかの進歩を見ることです。
そして最初の同期には-c
しか使用しません。その後、ファイルサイズと最終更新日に依存して更新するのが通常とてもうまくいきます。最後の同期以降にファイルが変更された場合、最後の変更日が異なるため、rysncはファイルを宛先で更新する必要があることを知るだけです。もちろん、それはあなたのシステムの日付/時刻が正しく設定されていて、ファイルの最終更新日を操作しておらず、あなたのシステムがそれらを更新することを禁じていない場合にのみ機能します。
あなたはこれを使用、単に存在にファイルをスキップする場合:
rsync -a -P --ignore-existing <source> <dest>
あなたが先に同じ名前のファイルが表示されている場合は、常にそれが同一であることを考える」のrsyncを伝えるようなものだとは決してそれを更新する "。あなたは、端末に
man <command>
を入力した場合だけで、一般的なヒントとして
、あなたは、ほとんどのシステム(Linuxでは、MacOSのXおよびUNIXシステム)での素敵なヘルプページを取得するあなたのすべてを説明しますすべての詳細のオプション。矢印キーまたはページ上/下を使用して上下にスクロールすることができます。終了するには「q」を押してそのビューを離れることができます。例えば。
man rsync
- 1. rsyncでコピーしたファイルにアクセスできない
- 2. rsyncでパーティション間にドッカーイメージフォルダをコピーする
- 3. 異なるパーミッションと所有者を持つサーバからのrsyncコピー
- 4. gradleでコピーするときにjarファイルが空になる
- 5. ソースフォルダから異なるコピー先フォルダにファイルをコピーする
- 6. 異なるファイルのシートを単一のファイルにコピーするマクロ
- 7. rsyncを使用して隠しファイルのみをコピーする
- 8. フォルダとサブツリー全体をコピーするときcpとrsyncの違い
- 9. リモートサーバーからローカルにファイルをコピーし、既存のファイルを無視する(rsyncは利用できません)
- 10. rsyncでファイルの異なる部分だけを見つけ出す
- 11. Rsyncは単一ファイルではなくディレクトリ全体をコピーします
- 12. SSHの複数レベルでrsyncを使用してファイルをコピー
- 13. Linuxでコピーしたファイルの権限が異なるのはなぜですか?
- 14. 異なる範囲にコピーするVBA
- 15. rsyncで1回ファイルをアーカイブする
- 16. c#コピーしたファイルの最終バイトが異なるのはなぜですか?
- 17. Bitbakeレシピ、異なるファイルの巨大なセットのrawモードでコピー
- 18. 異なるファイルから異なる列を1つの列にコピーし、同じファイル名で名前を変更
- 19. 編集ファイルを同じ場所にあるがVIMと異なる名前でコピーする方法
- 20. アプリケーションエクスプローラを使用してファイルをコピーすることはできますが、ファイルにアクセスできない
- 21. rsyncがインストールされていないリモートロケーションにファイルをrsyncする方法はありますか?
- 22. 異なるシステムで `npm install`を実行したときに` package-lock.json`ファイルが大きく異なる理由
- 23. 窓の向きが異なるときに異なるデータを表示する
- 24. FileFieldに大きなファイルを追加するときにコピーを避ける
- 25. CIとローカルでテストするときにJestスナップショットが異なる
- 26. rsyncは私が私のEC2にsshをすることができ、エラーEC2
- 27. 異なるシートの行をコピーする - 異なる行VBマクロ
- 28. Dropboxフォルダにコピーされたファイルが元のファイル名と異なる処理をしています
- 29. Laravel Projectを移動するときにコピーするファイルとフォルダ
- 30. gsutil rsyncがすべてのファイルを再ダウンロードするのはなぜですか?
私は、あなたが正しくファイルをコピーしなかった存在 – Paul
@Paulすでに私は再コピーせずにファイルが、のrsyncの送迎ファイルを続けたい... CPを使用して、私のディレクトリをコピーし始めました。あなたは 'cp -a'でそれらをコピーしたはずです。もしあなたのシステムがそのフラグを知らないなら、' cp -pPR'はほとんどのシステムで同じことをします。コピー時にファイルが変更日を保持するようにします。そうすれば 'rsync'は日付テストだけでスキップします。存在するファイルをスキップするには、ファイルの内容をチェックサムなしでサイズ/日付をチェックしないで '--ignore-existing'を使います。 – Mecki
私はすでに '--ignore-existing'を試しましたが、いくつかのファイルは不完全であり、それらをスキップします。 – Paul