rsync、find、および大量のデータを同期するのに便利なその他のコマンド

rsync、find、および大量のデータを同期するのに便利なその他のコマンド

私が考慮したいフォルダの構造は次のとおりです。

/mnt/network/

私のネットワークドライブ

/local/

私のローカルフォルダです。私が望むのは、これら2つのフォルダの内容(約350 GBのデータを表す)を同期することです。私は2つの人気戦略を知っています。同期そして一貫した。そうだUnisonは遅くなる可能性があります。データ量が多すぎるため、rsyncのみを考慮してください。

これら2つのフォルダを同期したいので、2つのコマンドを実行します。 /local/ のコピー 1:

rsync -avzut --progress --files-from=<(find . -mmin -1440 -type f) /local/. /mnt/network/

そして一つは/mnt/network/にあります:

rsync -avzut --progress --files-from=<(find . -mmin -1440 -type f) /mnt/network/. /local/

このコマンドを使用して、rsyncの実行を過去24時間(= 1440分)以内に更新されたファイルに制限します。この戦略について2つの質問があります。

  1. 最初のコマンド(/mnt/network/の内容を更新)を2回実行すると、最新のファイルが2回コピー:(a)コマンドが最初に実行されたとき - これは私が望むものです。そして(b)コマンドが2回目に実行されるときです。 (b)が異常だと思います。なぜなら、この段階で/local/と/mnt/network/のファイルが同じであるからです(サイズとタイムスタンプを確認しました)。これはrsyncとfindの組み合わせと関係がありますか? --size-only: / オプションを追加することを検討しましたが、rsync -avzut --size-only --progress --files-from=<(find . -mmin -1440 -type f) /local/. /mnt/networkこれは問題を処理する安定した方法ではないようです。

  2. 2番目の問題は、findコマンドが/mnt/network/で実行される速度が非常に遅いことです。だから私はサーバーにsshで接続してfindコマンドを実行し、そのコマンドの結果を自分のローカルコンピュータに戻す方法を探しています。その後、ファイル転送を実行します(サーバーが自分のローカルディスクに直接アクセスしたくないため、サーバーはこのファイル転送を注文できません)。どうすればいいのかわかりません...

関連情報