我正在使用 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 后面的空格。)