我设置了以下 rsync,它应该同步过去一天创建的 CDR 文件。
rsync -av root@vpsrv:'$(find /home/cdrs/*.cdr -type f -ctime -1)' /home/cdrs
但是,如果没有找到文件,则/root
出于某种原因,此命令将同步整个目录。我甚至尝试通过添加include=
过滤器来阻止这种情况:
rsync -av --include="*.cdr" root@vpsrv:'$(find /home/cdrs/*.cdr -type f -ctime -1)' /home/cdrs
或者甚至搜索 *.cdr:
rsync -av --include="*.cdr" root@vpsrv:'$(find /home/cdrs/*.cdr -type f -ctime -1 | grep *.cdr)' /home/cdrs
但没有运气。你有什么想法吗?
答案1
cd /home/cdrs && find /home/cdrs/*.cdr -type f -ctime -1 | rsync -av --files-from=- (source) (target)
重要的是“--files-from=-”,它要求从 STDIN 传输文件列表。它要求相对于源文件夹的文件名 - 这解释了“cd /home/cdrs”...