2

--backup --delete-duringおよびオプションを使用して rsync を実行すると--backup-dir=PATH、削除されたファイルのみがバックアップされますが、削除時にそれらのディレクトリが空だった場合、ディレクトリはバックアップされません。削除時にディレクトリをバックアップからプルーニングしないように指定するオプションが表示されません。

例:

mkdir /tmp/test_rsync_delete
cd /tmp/test_rsync_delete
mkdir -p a/a/a/a/a
ln -s . a/b

mkdir -p b/a/a
ln -s a/a b/a
touch b/a/a/a

mkdir c
mkdir backup

rsync -avi --delete-during --backup --backup-dir=backup a/ c/
find backup/ -exec ls -ldi {} \;
# Should be empty

rsync -avi --delete-during --backup --backup-dir=backup b/ c/
find backup/ -exec ls -ldi {} \;
# Will be missing the directory that was deleted to make way for the file.

アップデート

上記の例のように、実行すると、空のディレクトリが --delete オプションによって削除/削除されていることがわかります。ただし、 --backup-dir オプションで指定したディレクトリに同じディレクトリがバックアップされていませんでした。重要なのは必ずしもディレクトリではありませんが、重要なのはパーミッションと所有権です。バッチ モードで実行中に rsync が失敗した場合 ( --read-batch)、システムを以前の状態に復元してロールバックできるようにする必要があります。ディレクトリがバックアップされていない場合、実際には復元先として信頼できるポイントが作成されていません。一部のディレクトリが欠落している可能性があります。

--backupでは、オプションのファミリによって空のディレクトリが削除されるときに、オプションのファミリが空のディレクトリをバックアップしないのはなぜ--deleteでしょうか?

4

1 に答える 1