在一行中 rsync 多个目录

在一行中 rsync 多个目录

我有一个简单的任务,可以用多行来完成,但我想通过 1 个 cron 作业作为 1 行来运行它,而不是有 12 条单独的行。这是设置:

在图像处理共享上有一个文件夹,用于获取图像并根据位置和其他情况将它们移动到 12 个不同的文件夹。文件夹名称为 1a、2a、3a、4a、5a、6a 等至 12a。文件夹 1a-6a 需要转到 dr01 上安装的驱动器,文件夹 7a-12a 需要转到名为 dr02 的安装文件夹。每个 #a 文件夹里面都有很多子文件夹和文件。

所以,我想每天两次将 ../images/1a 同步到 ..DR01/1a。我可以使用以下命令分别对每个文件夹执行此操作:

rsync -avh --remove-source-files /images/1a/ /usr/local/blah/dr02/1a/

我希望我可以同步整个目录,但由于一半的文件要共享,另一半要共享,所以我必须将它们分解。

有没有更好的方法来做到这一点,而不必创建 12 个 rsync 作业来同步每个文件夹?有没有办法将它们分组到 rsync 行或类似的东西中?我曾经使用 union-fs 将 DR 融合在一起,但这不再是一个可行的选择。

预先感谢您提供任何可以帮助我解决此问题的提示。

答案1

假设有一个可以扩展{x..y}类型构造的 shell,这样的东西可能对您有用。 (通过在整行前面加上前缀来从命令行测试它echo。)

rsync -avh --remove-source-files /images/{1..6}a /mnt/dr01/
rsync -avh --remove-source-files /images/{7..12}a /usr/local/blah/dr02/

相关内容