※ ChatGPTを利用し、要約された質問です(原文:rsyncのオプションについて)
rsyncのオプションについて
このQ&Aのポイント
rsyncを使用してサーバー間の同期を行いたい場合に、ファイルの更新によって上書きされる問題が発生します。
タイムスタンプを比較して新しいファイルのみを同期するオプションが存在するかどうか確認しています。
もしこれ以外の同期方法があれば教えていただけるとありがたいです。
現在、rsyncにてサーバー間の同期をとろうと思っています。
A、B、Cのサーバーがあった場合
1.A→Cにファイルを吸い上げる
2.C→A、C→Bにコピーする
※このとき、C→Aにコピーする必要はないですが念のためって程度です。
サーバーAには絶えず最新のファイルが存在する前提です。
これだけなら簡単なのですが。。。
以下の場合に困っています。
上記、1と2の間
Aから吸い上げられた直後に、Aのファイルが更新されると
その後の、C→Aのrsyncで古いコンテンツに上書きされてしまいます。
※ファイルサイズも、タイムスタンプも違うため
こんな状態のようです。
1.A→Cにファイルを吸い上げる
※このときのファイルのバージョンを1.0とします。
2.Aにファイルの更新がかかる
※このときのファイルのバージョンを2.0とします。
2.C→A、C→Bにコピーする
※この時点で、Cにはバージョン1.0のファイルがあるので
Aサーバーへのコピーされてしまう。。。
1.0と2.0では、サイズもタイムスタンプも違うため。。。
なんとかしたいのは、このようなことがあっても大丈夫なように
タイムスタンプを比較で新しければ、rsync起動とやりたいのですが。。。
オプション探しても見つかりません
知っている方が居ましたら、ご教授いただけないでしょうか?
もしくは、このような場合に同期をとる別の簡単な方法があればと思っています。
※rsyncであれば、使ったことあるし設定も楽なので
この手法がいいかなって思っています
お礼
ご意見ありがとうございます! 試してみたところ、うまく動作していそうです。 参考程度に、以下のコマンド /usr/bin/rsync -aogpvlrz --inplace --update /hoge/hoge.txt rsync://hogehoge@000.000.000.000/hoge/ ※ざっくり書いたので、hoge部分を書き変えて動作するかは不明 本当に助かりました! ありがとうございました!