Synchronization 当存在';OSX有什么变化吗?
我需要同步OSX上的两个目录。我发现建议使用unison 我试过unison,它似乎可以很好地同步两个目录。但它不会自动进行同步(当有任何更改时,始终保持两个目录同步) 所以我想为了达到我的目的,unison应该与一个触发器一起使用,它将监视变化并通知unison完成它的工作Synchronization 当存在';OSX有什么变化吗?,synchronization,unison,Synchronization,Unison,我需要同步OSX上的两个目录。我发现建议使用unison 我试过unison,它似乎可以很好地同步两个目录。但它不会自动进行同步(当有任何更改时,始终保持两个目录同步) 所以我想为了达到我的目的,unison应该与一个触发器一起使用,它将监视变化并通知unison完成它的工作 但如何做到这一点呢?有什么建议和教程吗 我发现npm模块fsmonitor用于监视目录中的内容更改 首先,我编写一个小脚本,将我想要的文件夹与unison同步,如: unison -auto -batch dirA dir
但如何做到这一点呢?有什么建议和教程吗 我发现npm模块
fsmonitor
用于监视目录中的内容更改
首先,我编写一个小脚本,将我想要的文件夹与unison同步,如:
unison -auto -batch dirA dirB
unison -auto -batch dirB dirA
在全局中安装模块:npm安装-g fsmonitor
在shell中运行命令:
fsmonitor-d
然后目录中发生任何更改,将执行同步脚本,两个目录将同步。Unison内置了此功能。只需将行
repeat watch
添加到您的Unison个人资料中即可 安装Unison:
brew install unison
安装unox:
git clone git@github.com:hnsl/unox.git
cd unox
ln -s $PWD/unox.py /usr/local/bin/unison-fsmonitor
执行初始同步:
unison -auto -batch dirA dirB
运行连续双向同步:
unison -auto -batch -repeat watch -times dirA dirB
在中的unison配置文件中使用
repeat=watch
,即可实现此目的。(我试过Ubuntu 18.04)
步骤1,编辑unison配置文件,$HOME/.unison/example.prf
root = /tmp/data1
root = /tmp/data2
path = shared
repeat = watch
步骤2,开始unison
$ unison example
第3步,在任一根目录中创建一个文件,它将通过unison自动同步到另一根目录
$ touch /tmp/data1/shared/1.txt
$ ls /tmp/data2/shared/
-rw-r--r-- 1 user1 user1 0 Mar 26 16:25 1.txt
附录
sudo apt get install unison
repeat=watch
,您需要unison fsmonitor
$ curl -L -o unison-fsmonitor https://github.com/TentativeConvert/Syndicator/raw/master/unison-binaries/unison-fsmonitor
$ which unison
/usr/bin/unison
$ sudo cp unison-fsmonitor /usr/bin/
$ sudo chmod +x /usr/bin/unison-fsmonitor