rsyncを使用して双方向または双方向同期を設定しようとしています。私の場合、BからAに同期するときにのみファイルを削除するだけです。だから私はrsyncを次のように2回実行するつもりです。
rsync -rtuv ./A/ ./B/
rsync -rtuv --delete ./B/ ./A/
このソリューションの問題は、rsync(B-> A)を実行すると(つまり、rsync(AB)を実行した直後)、同期間に生成されたすべての新しいファイルも削除されることです。
タイムスタンプを条件として指定し、その日付/時刻より前に生成されたファイルのみを削除する方法はありますか?
修正する:
統合ソリューションがあることはわかっていますが、統合の問題は両方の端にインストールする必要があります。リモートサーバーと同期していますが、リモート側にunisonをインストールできません。
ベストアンサー1
rsync
あなたが経験しているまさにその理由のために仕事に間違ったツールです。代わりに、以下を試してください。unison
:
unison A/ B/
このコマンドを初めて実行すると、および内のファイルのみが識別されます。A
また、B
2つの場所にあるコンテンツを表示し、上書きするファイルを識別するように要求します。
次にこのコマンドを実行すると、変更がコピーされ、コピーされ、両方のA
場所B
で変更されたすべてのファイルが手動で解決されるようにB
表示されます。A
mkdir A B
date > A/date
who > B/who
unison A/ B/
# Lots of output from unison, showing synchronisation
ls A
date who
ls B
date who
date > A/date
unison A/ B/
# Lots of output from unison, showing synchronisation
unison
仮定を定義してプロセスを自動化することで、同期中に尋ねる質問の数を減らすために使用できる便利なフラグがたくさんあります。