如何从删除中排除 rsync 排除?

如何从删除中排除 rsync 排除?

我正在使用 rsync 在多台机器之间同步文件,使用方法如下:

rsync -az -e "ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no" \
  --delete --delete-excluded --force --exclude=.git  --exclude=.bundle \
  --exclude=tmp --exclude=log/* --exclude=*.log --exclude=*.pid \
  user@host:/path/to/src/ /var/build/dest

我想排除所有日志文件从源传输到目标,并删除目标上所有现有的日志文件。所以我使用--exclude=*.log效果--delete-excluded很好。

我想在目标上保留某个日志文件的完整性。我想要一个--exclude-from-delete选项。

使用 rsync 可以实现这个吗?

答案1

“保护”过滤器应该能够完成您想要的任务:

          protect, P specifies a pattern for protecting files from deletion.

只需在相关排除之前指定以下过滤器:

--filter='P my-specific-logfile.log'

(注意字母 P 后面的空格。)

相关内容