rsync 是否可以不在目标上创建目录?
想象一下我有那个来源:
a/
a/x.txt
b/
b/y.txt
Run Code Online (Sandbox Code Playgroud)
而且我有这个目的地:
a/
a/z.txt
Run Code Online (Sandbox Code Playgroud)
想要的结果rsync source destination
:
a/
a/x.txt
a/z.txt
Run Code Online (Sandbox Code Playgroud)
当然,我的真实情况涉及数千个文件/文件夹结构,我不想要涉及显式同步文件夹列表的解决方案,我可以这样做。我正在寻找一种干净的方法来防止在目标上创建任何文件夹。通过排除或过滤......这甚至可能是 rsync 之外的东西,比如如果 rsync 不能做到这一点,则具有权限的黑客攻击......
有关信息,这真的很容易出现这种情况,就我而言,我有:
A
& B
。和一个本地驱动器C
。rsync
用来同步(和合并)远程A
&B
到本地C
。C
文件同步回A
和B
。(只是新文件......不是目标上不存在的文件夹)小智 0
也许进行正常的 rsync,然后在第二步中删除所有新创建的文件夹......听起来很危险。
为了提高此操作的安全性,您可以使用目标系统上的另一用户:
rsync $src $specialuser@server:$destination
Run Code Online (Sandbox Code Playgroud)
删除该用户远程创建的文件夹:
ssh $normalUser@destination "find $destination -type d -user $specialuser -exec rm -r {} \;"
Run Code Online (Sandbox Code Playgroud)
然后将权限设置回正常:
ssh $normalUser@destination "chown -R $defaultUser:$defaultGroup $destination"
Run Code Online (Sandbox Code Playgroud)
该死,这看起来很脏......这需要一些重大改进:D