7

我已设置 rsync 以将目录从源服务器(a)镜像到镜像(b)。我已经让它发送源上的新文件,但是当我从源中删除一个文件时,它最终不会删除它。

下面是我用来调用 rsync 的内容:

rsync -vhzrplt --stats --delete --rsh='/usr/bin/ssh -q'  --exclude="core/" --exclude="cache/" /home/(a)/public_html (b):/home/(b)/public_html/

当我运行 rsync 时,我得到以下输出:

stdin: is not a tty
sending incremental file list
public_html/
deleting public_html/test.html

Number of files: 389
Number of files transferred: 0
Total file size: 3.16M bytes
Total transferred file size: 0 bytes
Literal data: 0 bytes
Matched data: 0 bytes
File list size: 9.25K
File list generation time: 0.001 seconds
File list transfer time: 0.000 seconds
Total bytes sent: 9.33K
Total bytes received: 47

sent 9.33K bytes  received 47 bytes  1.25K bytes/sec
total size is 3.16M  speedup is 336.81

如您所见,它表明它正在删除 test.html 但它永远不会这样做。任何帮助表示赞赏。

4

2 回答 2

1

我可以通过使用它来解决这个问题:

rsync -vhzrplt --stats --delete --rsh='/usr/bin/ssh -q'  --exclude="core/" --exclude="cache/" /home/(a)/public_html/ (b):/home/(b)/public_html/

将尾部斜杠添加到作为文件夹的路径。

于 2011-10-23T20:50:24.857 回答
1

rsync 有很多选项——见man rsync

例如:

--del                   an alias for --delete-during
--delete                delete extraneous files from dest dirs
--delete-before         receiver deletes before transfer (default)
--delete-during         receiver deletes during xfer, not before
--delete-delay          find deletions during, delete after
--delete-after          receiver deletes after transfer, not before
--delete-excluded       also delete excluded files from dest dirs

真的建议彻底阅读该手册页,因为有很多有用的选项。

于 2011-10-23T20:54:58.500 回答