我知道这里有一些相同主题的问题,但没有答案对我有帮助。
首先,这是我的脚本。它应该将所有文件从源复制到目标(保留所有权限等)。如果文件或目录在源中被删除,它也应该在目标中被删除。哪个工作不正常。
#!/bin/bash
## Basic RSync Command
RCMD="rsync -rulpEXogtzh --stats --delete --force"
DDIR="/tank/bak/s1/archive/"
SDIR="/tank/bak/s1/backup/"
CDAY=`date '+%u'`
echo "Archive Number: ${CDAY}"
echo "Archiving current backup"
$RCMD $SDIR $DDIR/$CDAY
Run Code Online (Sandbox Code Playgroud)
如果我在源中有以下目录:
/etc
/home
/root
/usr
Run Code Online (Sandbox Code Playgroud)
并同步它们我在目标中有以下目录:
/etc
/home
/root
/usr
Run Code Online (Sandbox Code Playgroud)
所以这很好用。现在,当我从源中删除 /usr 时,我的源如下所示:
/etc
/home
/root
Run Code Online (Sandbox Code Playgroud)
但是当我再次运行脚本时,我的目标仍然是这样的:
/etc
/home
/root
/usr
Run Code Online (Sandbox Code Playgroud)
所以不知何故 rsync 忽略了 --delete
rsync 输出:
Number of files: 1983645
Number of files transferred: 0
Total file size: 17.69G bytes
Total transferred file size: 0 bytes
Literal data: 0 bytes
Matched data: 0 bytes
File list size: 42.68M
File list generation time: 0.083 seconds
File list transfer time: 0.000 seconds
Total bytes sent: 42.68M
Total bytes received: 4.70K
sent 42.68M bytes received 4.70K bytes 155.52K bytes/sec
total size is 17.69G speedup is 414.50
Run Code Online (Sandbox Code Playgroud)
有谁知道为什么?
感谢您的任何回答!
如果权限禁止或目录不为空,则不会删除该目录。通常有些文件无法删除,因为它们是不可变的或受到其他保护。ls -a /usr
目的地上显示什么?
您可能想尝试该--force-delete
标志,但首先使用-n
(试运行模式)运行它以查看它会删除什么。
归档时间: |
|
查看次数: |
7313 次 |
最近记录: |