使用rsync命令进行文件传输时如何排序文件?

4
我们目前使用 rsync 运行备份任务。该任务需要几个小时的时间。由于备份中有一些部分比其他部分更重要,因此我们希望确保它们在其他所有文件之前备份(即让 rsync 首先传输这些文件)。这可以通过使用 rsync --files-from 轻松实现。
不幸的是,我们需要优先处理的文件与单个目录中的所有其他文件放在一起(扁平化层次结构),只是具有特定的扩展名以标识它们。因此,我们想获取 rsync 将要传输的文件列表,本地对其进行排序,然后使用 rsync --files-from 将其传递给 rsync
使用 rsync -v --dry-run 让我们接近目标(我想),但会显示目录添加和文件属性更改,这意味着我们实际上并没有立即可用的列表。
那么,我的问题是:如何从 rsync 获取要使用的文件列表?
3个回答

4
运行rsync两次可行吗?即先运行一次高优先级文件,再运行一次其他文件?

1
是的,最后我们做了这个,虽然对于不同优先级的文件,运行了五次rsync。 - Daniel Watkins

2

我本想评论@alberge的答案,但是我声望不够:-(

@Daniel,如果你正在使用单独的rsync命令,我可以建议使用for循环:

for pp in "*.png" "*.jpg" "*.bmp" "*.gif"
do
    rsync ... $pp
done

只需修改一个rsync命令即可进行更改,并提供一个易于管理的同步列表。for语句中的顺序是使用它们的顺序。


0

你可以先使用rdiff-backup,或者直接用rdiff-backup替换rsync。例如,你可以通过以下方式获取文件列表:

rdiff-backup --compare in-dir user@host::out-dir

不过,我会选择另一个建议尝试两次。此外,您尝试启用压缩了吗?


很遗憾,我们需要使用rsync来完成这个任务。 - Daniel Watkins

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接