
1TBの外部記憶装置が2つありますが、すべてサーバーにバックアップしたいと思います。これを行うためにrsyncを使用したかったのですが、各デバイスの約100,000個のファイルのうち、約80,000個のファイルが同じであることがわかりました(同じ名前とディレクトリパスを持っています)。 2つのファイルを別々にrsyncすることができ、それはファイルをマージしますが、変更されたファイルが変更された場合は変更されたファイルを失いたくないので、「相互」ファイルに同じコンテンツが含まれていることを確認する方法が必要です。 rsyncを使用してこれを確認する方法はありますか?
答え1
ファイルのチェックサムを確認するには、rsyncの「-c」フラグを使用することをお勧めします。モード時間とサイズが同じ場合。次に、チェックサムを実行してファイルの内容が同じであることを確認します。詳しくはこちらをご覧ください==>https://serverfault.com/questions/211005/rsync-difference-Between-checksum-and-ignore-times-options
答え2
その後、ローカルシステムで変更されたリモートシステムの更新または変更されたファイルのみを同期するには、次のようにファイルをコピーする前に練習を実行できます。
rsync -av --dry-run --update Documents/* [email protected]:/<directory>
結果が問題ない場合は、これを使用してください
rsync -av --update Documents/* [email protected]:/<directory>
詳細については、次を参照してください。http://www.tecmint.com/sync-new-changed-modified-files-rsync-linux/
答え3
両方の輸送には次のものがあります。
rsync --ignore-existing -i dir1/ [email protected]:/dir2/
最初の転送では、すべてのファイルを転送して一覧表示します。
2番目の転送では、すでに存在するファイルを無視し(--ignore-existing
)、実際にコピーしたすべてのファイルを一覧表示します(-i
)。その後、すべてのファイルリストのインポートを使用して、転送から欠落しているファイルをコピーすることを選択し、find
転送2の出力にリストされているファイルを削除できます。
残念ながら、ファイルがすでに存在する場合は少し異なるファイル名にコピーできないため、追加のロジックとループが必要です。