我知道在这里有一些相同的主题的任务,但没有答案帮助我。
首先,这是我的脚本。 它应该从源文件复制到目的地(保留所有权利等)。 如果文件或目录在源中被删除,它也应该在目标中被删除。 哪个不正确工作。
#!/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
如果我在源中有以下目录:
/etc /home /root /usr
并同步它们我在目标中有以下目录:
/etc /home /root /usr
所以这工作正常。 现在,当我从源代码删除/ usr时,我的源代码如下所示:
/etc /home /root
但是当我再次运行脚本时,我的目标仍然是这样的:
/etc /home /root /usr
所以不知何故rsync忽略 – 删除
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
有没有人知道为什么?
谢谢你的回答!
如果权限禁止,或者目录不为空,则该目录不会被删除。 经常有文件不能被删除,因为它们是不可变的或以其他方式保护的。 ls -a /usr在目标上显示什么?
您可能想要尝试使用--force-delete标志,但首先使用-n ( --force-delete运行模式)运行它,看看它会删除什么。