假设你想备份所有匹配模式的文件A到目录A以及所有匹配模式的文件b到目录乙. 实现此目的的自然方式是使用两个单独的rsync
命令。
rsync --include="...pattern_a..." --exclude="..." user@server:sourcedir/ a/
rsync --include="...pattern_b..." --exclude="..." user@server:sourcedir/ b/
到目前为止一切顺利。现在假设源目录包含大量文件。运行rsync
两次会消耗大量资源,仅构建索引一项就足够了。
是否有可能在一次运行中完成这样的事情rsync
,从而只构建一次索引?
答案1
在同一个文件系统上创建临时文件夹,将所需的文件硬链接到每个文件夹,然后在每个文件夹上运行 rsync。
例如
cp -Rl <...glob_pattern_a...> /tmp/tmp_a cp -Rl <...glob_pattern_b...> /tmp/tmp_b
rsync --remove-source-files /tmp/a 用户@服务器:destdir_a rsync --remove-source-files /tmp/b 用户@服务器:destdir_b
如果您想从目标系统执行此操作,您可以将“cp”命令放在源系统的脚本中。