参考(膜大佬):https://blog.csdn.net/qq_26702065/article/details/52175560
¶ 思路
- 用inotify监控文件夹,如果文件夹内有文件变化则输出变化情况
- 每当inotify检测到文件变化时,就调用unison,把当前文件夹的变化发给另一个文件夹
- 创建两个进程分别进行单向同步,从而变成了双向同步。
¶ 安装必要程序:
sudo apt install -y inotify-tools unison |
¶ 单向同步
把下面的代码保存为syncto.sh
/bin/bash |
- inotifywait
m: (monitor)一直监控
r: (recursive)递归监测目录
q: (quite)打印最少(只打印事件)
e: (event)只监测后面的特定事件
- unison
batch: 不问任何问题
¶ 双向同步
保存为syncboth.sh
nohup syncto.sh $1 $2 & |
然后
bash syncboth.sh dir1/ dir2/ |
其中dir1和dir2必须是绝对路径。
这样即可同步两个文件夹了(前提是两个文件夹没有冲突的部分。建议先手动同步一下两个文件夹,否则容易出问题)