「update」オプションで次のrsync
コマンドを使用しています。つまり、シンクの最新のファイルをスキップします。私に話す必要があることを除いて動作しますスキップしたファイル受信機でもっと最新だからな
rsync -ahHX --delete --itemize-changes --stats --update /path/to/source/ --exclude=/dir1/ --exclude=/dir2/ --exclude=/dir3/ /path/to/receiver/
マニュアルページを見ましたが、そのようなオプションは表示されません。ちょっと見逃したり、何か理解していないことを願っています。
rsyncがこれを実行しない場合、他のどのツールを使用できますか?試してみましたが、diff -rqw /path/to/source/ /path/to/receiver/
時間がかかりすぎます。それは私が必要とするよりも多くのことをします。
合計ファイルサイズは24.60GB、合計71,835ファイルです。
答え1
より良い解決策があればいいのですが、私が思いついたのは次のとおりです。
まず、コピージョブの反対方向にこのチェックを実行します。
rsync --dry-run -ahvP --itemize-changes --stats /path/to/receiver/ /path/to/source/
これにより、受信機にどのファイルが最新であるかを知らせます。(したがって、私のrsyncコマンドではスキップします。)ファイルを手動で処理してから、元のrsyncコマンドを実行できます。
rsync -ahHX --delete --itemize-changes --stats --update /path/to/source/ --exclude=/dir1/ --exclude=/dir2/ --exclude=/dir3/ /path/to/receiver/
これは私の目標を達成しますが、rsyncがファイルリストを2回作成するのを待つことが含まれます。毎回15秒ほどかかります。より良い解決策がなければ、私はそれで生きることができます。
答え2
2つのレベルの詳細を追加できます。
$ rsync -a --update -vv a/ b/
sending incremental file list
delta-transmission disabled for local transfer or --whole-file
1 is uptodate
2 is uptodate
3 is newer
4 is uptodate
5 is newer
total: matches=0 hash_hits=0 false_alarms=0 data=0