rsync 不创建目录备份

rsync 不创建目录备份

假设我有一个包含文件的目录:

a b c d

因此我使用 rsync 复制:

rsync -av --delete -P --backup --backup-dir=sample-$(date +%a-%H%M) ../sample /backups

我进入/backup/sample:

-rw-r--r-- 1 sergio sergio 0 feb 17 18:31 d
-rw-r--r-- 1 sergio sergio 0 feb 17 18:31 c
-rw-r--r-- 1 sergio sergio 0 feb 17 18:31 b
-rw-r--r-- 1 sergio sergio 0 feb 17 18:31 a

但如果我创建一个目录:

a b c d newdir

我只进入/backup/sample:

-rw-r--r-- 1 sergio sergio    0 feb 17 18:31 d
-rw-r--r-- 1 sergio sergio    0 feb 17 18:31 c
-rw-r--r-- 1 sergio sergio    0 feb 17 18:31 b
-rw-r--r-- 1 sergio sergio    0 feb 17 18:31 a
drwxr-xr-x 2 sergio sergio 8192 feb 17 18:52 newdir

但是如果我删除一个文件:

/backups
├── sample
│   ├── a
│   ├── b
│   ├── c
│   └── newdir
└── sample-sáb-1855
    └── sample
        └── d

那么,为什么 rsync 在第一次修改(创建 newdir)时没有创建“sample-date...”。这是预期的行为吗?

答案1

rsync(1)

-b,--备份
使用此选项,预先存在的目标文件每次传输或删除文件时都会重命名。您可以使用--备份目录- 后缀选项。

前两次仅传输新文件,因此无需创建备份。

在第三次调用时,文件sample/d被删除,现在选项--backup告诉 rsync 创建 的备份。此备份在备份目录+sample/d中创建。/backupssample-$(date +%a-%H%M)

如果您修改任何现有文件,也会发生同样的事情。例如,更改文件,将在备份目录中sample/a创建备份副本。a/backups/sample-$(date +%a-%H%M)


如果你想创建版本备份,你宁愿每次 rsync 运行时提供不同的目标目录

rsync -av --delete -P ../sample /backups/sample-$(date +%a-%H%M)

相关内容