我有多个源目录,比如/home/me/source1
和/mnt/somedisk/source2
。我想将它们分别推向类似/home/someoneelse/dest1
和/home/someoneelse/dest
。我想为此使用一个 rsync 命令,这可能吗?
对于每个目录都是唯一的 N 个目录到 N 个目录呢?
如果您经常这样做,我还建议您通过脚本来处理此问题。
如果目标根始终相同,例如:rsync /foo/blah1 /bar/
和rsync /fin/blah2 /bar/
你可以用一个简单的 Bash for 循环来处理。
for x in /foo/blah1 /fin/blah2
do
rsync $x /bar
done
Run Code Online (Sandbox Code Playgroud)
就此而言,您还可以设置嵌套循环,以便各种源可以到达每个目的地。多年来,我们一直将其用作我们办公室的基本备份系统。
如果您不必复制任何符号链接,则可以在接收端设置一个目录,该目录模仿发送端的目录布局,每个链接都指向预期目的地。
一种方法是在接收端使用符号链接source1
和source2
,并使用 运行接收进程--keep-dirlinks
。
如果您必须传输符号链接,那么您可能会--no-implied-dirs
为您工作。同样,您将在接收端有符号链接,但这次是在目录结构内,即,home/me/
将是目录(在 rsync 目标文件夹内,无论您想要在哪里),并且home/me/source1
将是到/home/someoneelse/dest1
. 当不使用--keep-dirlinks
时,您不应该传输source1
自身(因为这会删除符号链接并将其替换为目录),而是传输 内的所有文件source1
,即/home/me/source1/*
. shopt -s dotglob
也用于匹配其中的隐藏文件。
所有这些都只是远程测试:我知道我在某些时候有类似的东西在工作,但现在没有可用的详细信息或命令。因此,在生产设置中使用它之前,请测试可能的组合,特别是目录和目录符号链接之间的更改。
归档时间: |
|
查看次数: |
10051 次 |
最近记录: |