rsyncは空のファイルを除外します

rsyncは空のファイルを除外します

最近、ボリュームの一部のファイルが奇妙に切り取られていることがわかりました。より正確には、長さ0のファイルに置き換えられました。

幸いなことに、これらのファイルはさまざまな場所でハードリンクされており、リンクの約半分だけが見かけ上同じ属性の長さゼロのファイルで実際に上書きされます。

ところで、バックアップを見てみると、以前のバックアップの前に問題が発生したことがわかりました。そのボリュームの場合、ファイルを削除してはいけません。ほとんどの場合、単に追加されるため、単純なミラーバックアップで十分です。しかし、ファイルが実際に削除されたわけではないので、単にrsync削除しないように言うことはできません。

rsyncローカル側では長さが0ですが、リモート側では長さが0以外のファイルを同期しないように指示する方法はありますか?

もちろん、長さゼロのファイルを見つけて除外するいくつかのコードを書くこともできますが、これは時間がかかります(現在のファイルシステムを2回完全に検索している間)、合法的に再同期する必要があるファイルを除外することもできます。予想される長さがゼロのファイルがある場合)。

ベストアンサー1

rsyncオプションがあります--min-size

 --min-size=SIZE         don't transfer any file smaller than SIZE

したがって、--min-size=1空のファイルを無視するだけで十分です。

転送する必要があるファイルがない場合(ターゲット側に0バイトのサイズのファイルがない場合)、この方法が役立ちます。

AFAIKには、ソースとターゲットのサイズに応じて特別なアクションをとるようにrsyncに指示する方法はありません。

おすすめ記事