Rsync - -b (バックアップ) フラグは具体的に何をするのでしょうか?

Rsync - -b (バックアップ) フラグは具体的に何をするのでしょうか?

-b フラグが何をするのかよく分かりません。公式ドキュメントによると:

このオプションを使用すると、各ファイルが転送または削除されるたびに、既存の宛先ファイルの名前が変更されます。

しかし、これが何を意味するのか分かりません。削除されるファイルの名前を変更するにはどうすればいいのでしょうか? ファイルの名前変更はバックアップとどのように関係しているのでしょうか? -b で rsync を呼び出した後、ファイルの名前は変更されませんでした:

rsync --delete -bavh

さまざまなチュートリアルを見ても、このオプションは実際には使用されていないので、本当に便利なのでしょうか?

違いは何でしょうか?

rsync --delete -bavh

そして

rsync --delete -avh

また、あまり役に立たないかもしれませんが、私の使用例は次のとおりです。マウントされた WebDAV ドライブにデスクトップのバックアップを作成したいです。バックアップは毎日指定された時間に自動的に実行されます。

答え1

このオプションの目的backupは、上書きされたファイルや削除されたファイルのコピーを保持することです。

--backup-dirこれらのファイルをターゲット ディレクトリとは別のディレクトリに保存するために使用できます。

--suffixオプションを使用して、ファイル名に追加されるバックアップ サフィックスを追加で指定できます。このオプションを指定しないと、指定したbackup-dirディレクトリにバックアップされたファイルは元のファイル名を保持します。このオプションを使用すると、ファイル名を変更して元のディレクトリに残すことができます (つまり、backup-dir必須ではありません)。

したがって、を使用する場合は またはbackup-dirのいずれか--suffixが必要ですbackup

答え2

これで遊んでみました。これが分かったことです。

--backup と --backup-dir を使用して、一種の増分バックアップを作成します。

次のコードがあるとします:

# test date with a timestamp:
date +%F_%H-%M-%S
2024-03-06_19-48-08

#
SRC=your/cooldir
DST=backups
INCDIR="${DST}/inc_$(date +%F_%H-%M-%S)"
rsync -avh --backup --backup-dir="$INCDIR" "$SRC/" "$DST/"

これを初めて実行すると、/cooldir の完全バックアップ (ミラー同期) である backups/cooldir が取得されます。

次に、ファイル newfile.txt を your/cooldir に追加します。コードを再度実行します。ファイルは削除または変更されていないため、INCDIR は作成されません。

次に、/cooldir/newfile.txt を削除します。コードを再度実行します。このファイルが削除され、--backup と --backup-dir が指定されているため、以前と同じように backups/cooldir (完全バックアップ) が取得されますが、ディレクトリ backups/inc_2024-03-06_19-57-23 も取得されます。この増分ディレクトリ内には、newfile.txt があります。これは削除されたためにそこにあります。

これをもう一度試すには、newfile2.txt を作成して実行し、2 回目の実行で newfile2.txt を変更します (削除しないでください)。backups/inc_xx フォルダーに newfile2.txt が再度作成されます。

ここでコードを試してみますが、次の行を変更します。

INCDIR="${DST}/inc_$(date +%F)"

これらのシナリオを再実行します。 1 回目は、backups/inc_2024-03-06 に newfile.txt が作成されます。 2 回目は、同じディレクトリに newfile.txt と newfile2.txt の両方が作成されます。 つまり、--backup と --backup-dir は、厳密には増分バックアップではありません。 ファイルに対する最後の変更/削除の蓄積です。

最後に、次の変更を試してください。

rsync -avh --backup "$SRC/" "$DST/"

今回は、変更および削除されたファイルの名前がチルダ付きに変更されます(例:newfile.txt~)。

関連情報