Edd*_*ddy 6 unix bash rsync file-permissions
我在使用 rsync 同步文件权限时遇到问题。我正在尝试将我的 /home/bin 文件夹与远程机器上的 /home/bin 文件夹同步。问题是,当我编写一个新脚本并使用 'chmod +x' 使其可执行时,然后在执行 rsync 后,该文件恢复为不可执行。
如果我使用 --perms,当我更新远程机器上的文件权限,然后在主机上使用 rsync 时,文件权限不会在主机上更新,而在远程机器上它们会恢复。
有没有办法正确同步文件权限?
更新:我忘了发布我使用的脚本:
#!/bin/bash
rsync -e ssh -avz --recursive --progress --update --perms /home/bin username@example.com:/home
rsync -e ssh -avz --recursive --progress --update --perms username@example.com:/home/bin /home
Run Code Online (Sandbox Code Playgroud)
我认为你的基本问题是这rsync不是双向同步的好工具。我会推荐一些概念上不同的解决方案,否则你会继续困扰自己。
Unison. 它的功能类似于rsync但专为两说同步而设计。git. 这对于配置文件和个人脚本等内容特别有用。您使用它们的每台计算机都将进行单独的签出,并且版本控制负责确保您始终按时间进行最新更改,包括合并多个不同的更改,而不仅仅是从任何一个来源破坏数据。