Rsync & MergerFS 一一创建目录

Rsync & MergerFS 一一创建目录

我使用 epmfs 的默认策略设置了 mergefs。这意味着如果我local/target/在所有磁盘上将文件复制到local/target/,每个文件都会被复制到复制时具有最多可用空间的磁盘。

我想用于rsync从远程计算机传输文件,如 中所示rsync -rt user@remote:/remote/target/ local/target/,其中local/target/目录已复制到所有磁盘上,但没有任何内容。如果/remote/target/文件已满,则效果很好,各个文件按预期均匀分布在磁盘上,因为下一个文件仅在最后一个文件完成传输后创建。如果/remote/target/有许多子目录,则在传输任何文件之前会立即创建所有子目录。这破坏了 epmfs 的预期行为,因为所有子目录将仅在一个磁盘上创建,而不是像文件那样分布在多个磁盘上。

有没有办法rsync在实际子目录内容传输之前及时强制一一创建子目录?

这意味着当创建下一个子目录时,第一个磁盘上的可用空间将较低,并且可以选择下一个磁盘。我尝试了一些rsync选项,例如-O--no-i-r,但似乎没有什么可以改变这种行为,并且联机帮助页上的其他内容似乎都没有指出抑制目录创建的方法。或者,是否有其他方法可以解决此问题而不影响 epmfs 策略的预期行为?

与大家讨论后厘米一种选择是rsync为每个正在传输的子目录单独运行,但如果可能的话我宁愿避免这种情况。理想情况下,我想使用一种仍然可以显示整体传输进度、恢复失败传输等的方法。

这是我能找到的执行多个版本的最简单方法,尽管它仅在发送端而不是接收端运行rsync时才有效:rsync

find /local/target/ -type d -mindepth 1 -maxdepth 1 -exec sh -c 'rsync -rt "{}" [email protected]:/remote/target/' \;

相关内容