rsync --deleteの代わりにファイルを削除するのではなく、別のディレクトリに移動します。

rsync --deleteの代わりにファイルを削除するのではなく、別のディレクトリに移動します。

私はrsyncリモートコンピュータの大容量ハードドライブのバックアップに使用します。デフォルトでは、rsyncリモートコンピュータ上のファイルはローカルコンピュータに存在しなくても削除されません。これは、たとえば、誤って削除されたファイルを回復したい場合に回復できるため、便利です。これは、空のディレクトリをrsyncすることを心配する必要がないことを意味します(ハードドライブが死んでいる場合)、またはマウント解除されます。問題は、リモートホストで多くのディスク容量を必要とし、バックアップを復元する必要がある場合は削除されたファイルで汚染されることです。

もう1つのオプションですが、rsync --deleteこれは最初にバックアップを実行したときに削除されたファイルも削除され、マウントポイントが空の場合はバックアップを削除する危険性があることを意味します。

rsync理想的には、同様の操作を実行するように指示する方法がありますが、ファイルを削除するのではなく、その--deleteファイルを別のバックアップ階層に移動します。これにより、必要に応じてそのファイルを復元し続け、2番目の階層でより大きなファイルをクリーンアップしてスペースを節約できます。

この行動を模倣する方法はありますか? (または同様の動作)

(リモートホストで2つのフルバックアップを維持するのに十分なディスク容量がありません。また、増分バックアップツールがあることを知っています。ボグバックアップしかし、私はカスタマイズされたストレージフォーマットを備えた重いツールに頼らないソリューションが欲しいです。私もハードリンクを使用するソリューションに少し境界がありますが、それが最善の選択であれば大丈夫です。 )

ベストアンサー1

あなたはそれを使用することができます- サポート

-b、--backupこのオプションを使用すると、各ファイルが転送または削除されると、既存のターゲットファイルの名前が変更されます。

結合する--バックアップディレクトリ

--backup-dir=DIR --backup オプションと一緒に使用すると、rsync は受信側の指定されたディレクトリにすべてのバックアップを保存するように指示します。増分バックアップに使用できます。

変更および削除されたファイルのコピーを受信側の別のディレクトリに保存します。

削除されたファイルのみをバックアップにアーカイブするには、同期後に更新されたファイルを個別に削除できます(例:このように)。

おすすめ記事