我知道这里有一些相同主题的问题,但没有答案对我有帮助。
首先,这是我的脚本。它应该将所有文件从源复制到目标(保留所有权限等)。如果文件或目录在源中被删除,它也应该在目标中被删除。哪个工作不正常。
#!/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: …Run Code Online (Sandbox Code Playgroud)