我们用来rsync
将文件从一个位置复制到不同主机上的另一个位置。我们想要从源位置排除某个目录,以便不复制该目录中的文件。该目录中的文件实际上是会话数据,会话完成后该数据将被删除。所以我们排除这个目录。
为此,我们修改了rsync
排除目录,如下所示:
rsync -av --exclude '/share/web/moodle/moodledata/sessions/' --rsync-path "sudo rsync" /share/ 172.31.X.X:/share/ &>/home/fsync/rsyncjob/output."$datetime";
但我可以看到该目录没有被排除,因为从日志文件中可以看到它正在尝试复制日志文件:
rsync: send_files failed to open "/share/web/moodle/moodledata/sessions/sess_bnktcuvnv965dj4qtv1438o651": Permission denied (13)
rsync: send_files failed to open "/share/web/moodle/moodledata/sessions/sess_d2vvo9ip79jc13qafgq5of50s2": Permission denied (13)
请建议修复以排除该目录
答案1
在发布问题之前,请务必尝试查看是否已经有类似的讨论。
使用 rsync,所有以 / 开头的排除(或包含)路径都锚定到传输的根。本例中传输的根目录是/share。使用相对路径而不是绝对路径,它应该可以工作。
为了进一步参考,