2016-11-22 2 views
1

私はテキストログファイルといくつかのバックアップサーバを作成するいくつかのプロセスを持っています。 テキストログファイルをバックアップサーバーに移動したい(ソースファイルを削除して)。そして、同じ名前のログファイルがある場合は、次のrsync startで、以前に移動したファイルを追加/連結します。rsyncとappendの長さが短いファイルから長いファイルの部分は、受信者に存在します

rsync -av --append --remove-source-files [email protected]:/source/ [email protected]:/destination/

、すべてを除いて素晴らしい作品 - 送信元と送信先に同じ名前のファイルがある場合は、宛先/受信機は、ソースサーバ上のより長いファイルを持っている - それはスキップされます。これを無効にするには--appendのファイル長の確認?同じ名前のファイルを無制限で追加するだけです。

答えて

0

appendオプションはそのようには機能しません。マニュアルページから

これは既に 受信側に存在するデータと同一であることを前提と ファイルの末尾にデータを追加してファイルを更新するためにrsyncを引き起こします送信側のファイルの開始 あなたは1キロバイトのファイル、BEの2キロバイトをエンドファイル、およびより大きなファイルの最初の1キロバイトに2キロバイトのファイルを「追加」場合

ので、を破棄されます。逆に、等しいか小さいサイズのファイルを "追加"すると、ファイル全体が破棄されてしまいます。

--appendオプションを渡すことによって、基本的にはrsyncが有望であることがわかりますファイルの開始は決して変更されません。

ファイルを削除すると、ファイルの先頭がに変更されました。同様に、logrotateは悪いことを起こさせます。

結論:--append--remove-source-filesでうまく再生されません。

--append-verifyオプションは、logrotateの問題を解決しますが、まだデータを破棄します(異なるデータです)。

関連する問題