看到萌鼠大佬写的文章 (原文: https://www.moerats.com/archives/980/ ) 没提到具体的权限和冲突解决部分内容, 抄过来改下(见双向同步部分)。
Github地址:https://github.com/mutagen-io/mutagen
支持系统:Windows
,MacOS
和Linux
mutagen安装:
wget https://github.com/mutagen-io/mutagen/releases/download/v0.10.0/mutagen_linux_amd64_v0.10.0.tar.gz
tar zxvf mutagen_linux_*.tar.gz -C /usr/local/bin
mutagen daemon start
#查看所有的会话
mutagen sync list
#监控名为projectname 的会话
mutagen sync monitor projectname
#停止名为projectname 的会话
mutagen sync pause projectname
#恢复名为projectname 的会话
mutagen sync resume projectname
#刷新名为projectname 的会话
mutagen sync flush projectname
#永久删除名为projectname 的会话
mutagen sync terminate projectname
本地同步到本地:
#创建一个名为sync1的同步本地/data1和本地/data2文件夹的会话
mutagen sync create --name=sync1 /data1 /data2
本地同步到目标服务器,单向同步:
单向同步时,可以指定同步模式:one-way-safe为增量同步,one-way-replica为全量同步。
#创建一个名为sync1的同步本地/data1和远程服务器/data1文件夹的会话
mutagen sync create --name=sync1 -m one-way-safe /data1 user@远程服务器ip:port:/data1
创建会话后,只会单向同步本地/data1文件夹到远程服务器/data1文件夹,意味着/data1文件夹出现变动会影响目标服务器/data1文件夹,而目标服务器/data1文件夹出现变动不会影响本地/data1文件夹。
两台服务器双向同步:
这里如果不指定同步模式的话,默认为two-way-safe模式,需要手动解决冲突,所以我们需要用two-way-resolved模式。
#创建一个名为sync1的本地/data/www/与远程服务器/data/www/文件夹双向同步的会话,并且同步后拥有者和组为www,文件默认权限为644,文件夹权限为750,同步模式为two-way-resolved,即当遇到冲突时以alpha(创建会话的服务器默认为alpha,对端为beta)文件为准自动解决冲突。
mutagen sync create --sync-mode=two-way-resolved --name=sync1 --default-owner=www --default-group=www --default-file-mode=0644 --default-directory-mode=0750 /data/www/ root@192.168.1.2:22:/data/www/