好的,所以我的网络服务器具有以下文件结构
/
/home
/home/username
/home/username/public_html
/home/username/mail
/home/username/etc
...
/home/username2
/home/username2/public_html
...
所以我试图弄清楚做一个执行rsync的cronjob的方法只会同步我拥有的600个帐户的public_html文件夹。我想到也许在一个排除列表中,每个其他子文件夹名称都在帐户目录下,但我不确定这是否是最佳解决方案
有没有办法让rsync只同步public_html文件夹的内容而无需手动输入600个帐户? 感谢
PS:我目前的解决方案是:
rsync –vaRu –exclude ‘mail*’ -exclude 'etc*' home root@xxx.xxx.xxx.xxx:home
使用此解决方案,如果任何文件名与目录名匹配,则不会复制它们。
答案 0 :(得分:0)
您可以使用三个过滤器执行此操作:
rsync -av --filter="+ /home" \
--filter="+ /home/*" \
--filter="+ /home/*/public_html" \
--filter="+ /home/*/public_html/**" \
--filter="- *" / root@xxx.xxx.xxx.xxx:mirror
在public_html和“**”之前为树中的所有目录添加“+”过滤器以包含public_html后面的所有内容非常重要。
唯一的缺点是所有主目录都将在目标上创建,但就像空目录一样。