同期される前にファイルの内容を確認するようにRsyncを設定できますか。私はチェックサムについて聞いたことがありますが、チェックサムはサンプリングしかしていないことを知りました。コンテンツが変更され、タイムスタンプでない場合にのみファイルを転送したいのですが、rsyncモードのいずれかでそれを行う方法があります。 私のシナリオでは、ファイルsample.textが毎週作成され、sample.textの内容が変更された場合にのみリモートサーバーと同期したいとします。毎週作成されるため、タイムスタンプは明らかに変更されます。しかし、私はコンテンツの変更だけで転送が欲しいです。同期する前にrsyncで内容を確認できます
答えて
はい、マニュアルをお読みください。
$ man rsync | grep "\--checksum"
-c, --checksum skip based on checksum, not mod-time & size
Rsyncはかなり複雑です。マニュアルページでは抱き合わせの時間を、テストのデータでは実験をすることをお勧めします。
ほとんどの場合、人々はrsync -ac source dest
を使用します。
$ man rsync | grep "\--archive"
-a, --archive archive mode; same as -rlptgoD (no -H)
そして-rlptgoD
ゴミがつまり:recursive
、copy symlinks as symlinks
、preserve permissions
、preserve times
、preserve group
、preserve owner
、preserve device files (super-user only)
、preserve special files
、およびskip based on checksum, not mod-time & size
-c
または--checksum
あなたが探しているものは本当にある、とあなたの仮定をそれはmtimeをサンプリングするだけであり、サイズは間違っています。
+マニュアルページとテストデータの実験で苦労している_ - 非常に良いアドバイス –
rsyncのマニュアルページの--checksum
オプションを参照してください。
また、コンテンツの変更がサイズの変更を意味することがわかっている場合は、--size-only
オプションを選択するのがより迅速になります。
例:
#!/bin/bash
echo > diff.txt
rsync -rvcn --delete /source/ /destination/ > diff.txt
second_row=$(sed -n '2p' diff.txt)
if [ "$second_row" = "" ]; then
echo there was no change
else
echo there was change
fi
なぜこのコードがうまくいくのかを説明する必要があります。コード自体にコメントを追加することもできます。コミュニティの他の人があなたが解決/答えにしたことを理解するのに役立つ説明を何も提供していない。 – ishmaelMakitla
変更がなければ、rsyncの冗長モードのdiff.txtの2番目の行は空です。sedはこの2番目の行を調べます。 – oldbowman
- 1. 同期フレームワーク - 同期する前にロジックを確認します
- 2. Javaで同じ内容の画像を確認する
- 3. Yii2:提出する前にファイルの内容を確認する
- 4. インポートする前にファイルの内容を確認する
- 5. テキストボックスの内容を確認する
- 6. txtファイルの内容を確認する
- 7. NSMutableArrayの内容を確認する
- 8. ディスクに保存する前にZipFileの内容を確認する方法
- 9. RSync:両方向でどのように同期しますか?
- 10. 特定のアウトラインレベルで段落の内容を確認します
- 11. すべてのセルの内容を非同期でロードする
- 12. pythonでプログラムを使ってファイルの内容を確認する
- 13. 解凍する前にzip/gzipの内容を確認してください
- 14. クッキーファイルを開いてそのファイルの内容を確認できますか?
- 15. Javascriptオブジェクト内の内容を確認するには
- 16. Rsyncと同期の順序
- 17. ASP.NETでのラベルの内容を確認する
- 18. JavaScriptで文字列の内容を確認する
- 19. HTML5で図面の内容を確認する
- 20. カフカのブローカーレジストリ、コンシューマレジストリ、オーナーシップレジストリ、およびオフセットレジストリの内容を確認できますか?
- 21. Divの内容を非同期でロードする
- 22. ネイティブインポートjsonファイルに反応して内容を確認します
- 23. 印刷前に内容を編集できますか?
- 24. Javaマルチスレッド同期の確認?
- 25. Androidで同期設定を確認する方法
- 26. アンドロイドのヒストリーの内容を確認するには?
- 27. 未知の.pyプロセスの内容を確認するには?
- 28. Body Tagの内容を確認するには?
- 29. 実行時にJavaヒープの内容を確認する
- 30. ガベージコレクタの内容を確認するには
あなたはrsyncのmanページを試してみましたか? -c、--checksum これは、ファイルが変更され、転送が必要かどうかをrsyncで確認する方法を変更します。このオプションが指定されていない場合、rsyncは(デフォルトで)各ファイルのサイズと送信者と受信者間の最終変更時刻が一致するかどうかを確認する「クイックチェック」を使用します。 –