我在使用 rsync 同步文件权限时遇到问题。我尝试将我的 /home/bin 文件夹与远程计算机上的 /home/bin 文件夹同步。问题是,当我编写新脚本并使用“chmod +x”使其可执行时,执行 rsync 后,文件恢复为不可执行状态。
如果我使用--perms,当我在远程计算机上更新文件权限,然后在主机上使用rsync时,文件权限不会在主机上更新,而在远程计算机上它们会被恢复。
有没有办法正确同步文件权限?
更新:我忘了发布我使用的脚本:
#!/bin/bash
rsync -e ssh -avz --recursive --progress --update --perms /home/bin [email protected]:/home
rsync -e ssh -avz --recursive --progress --update --perms [email protected]:/home/bin /home
答案1
我认为你这里的基本问题是它rsync
不是一个很好的双向同步工具。我建议使用一些概念上不同的解决方案,否则你会继续自讨苦吃。
- 您可以研究一下使用
Unison
。它的功能类似于,rsync
但设计用于两个同步。 - 更好的是,考虑使用像这样的源代码控制系统
git
。这对于配置文件和个人脚本等内容特别有用。您在每台机器上使用它们时都会有单独的签出,版本控制会确保您始终拥有最新的更改,包括合并多个不同的更改,而不仅仅是从任何一个来源破坏数据。