Rsync 排除远程

Rsync 排除远程

我尝试将内容同步回远程服务器,不同之处在于服务器有一个新的 /home/virtual 文件夹,我不想触碰它:

rsync -avz --numeric-ids --fake-super --delete --delete-after --exclude='/home/virtual' --stats -e "/usr/bin/ssh -i backupkey" /backups/machine1/home/ [email protected]:/home

有没有办法告诉 rsync 进行同步,但不要触碰该文件夹?如果我删除 --delete 键,则需要删除的其他内容将不会被删除,因此这不是一个选择。排除指令似乎仅适用于源。

谢谢

答案1

遗憾的是 --exclude 适用于源端,而不是目标端(如您所说)。我最好的建议是将要保留的数据移出目标区域。例如,不要使用 /home/virtual,而要使用 /keep/virtual

答案2

我有同样的问题,我可以理解--exclude这种行为,请参阅:https://unix.stackexchange.com/a/83403
关键细节是斜线的位置很重要。引用自链接:

如果在源目录末尾附加一个斜杠,rsync -a source/ destination它将复制源的内容,否则rsync -a source destination将源目录本身复制到目标。

相关内容