最近有在2台机器双向同步文件的需求, 于是有了本文. 上网找了一些双向文件同步的工具, 比较典型的有syncthing和mirror. 本文介绍mirror的使用方法(不过好像syncthing使用更广泛一些).
- 在2台机器上安装好java1.8版本(ubuntu使用sudo apt install openjdk-8-jre命令即可安装);
- 在2台机器上安装好Watchman(安装方法);
- 在2台机器上安装mirror工具(安装方法见github页面)
假设你的mirror安装在/data/apps/mirror/目录下, 2台机器需要同步/data/sftp/文件夹.
在server端运行mirror程序
写入systemd系统服务
$ vim /etc/systemd/system/mirror.service #写入如下内容
[Unit]
Description=Mirror (File sync for two sftp servers[10.16.19.21,10.16.19.24])
After=network-online.target
After=network-online.target
Requires=network-online.target
[Service]
Type=simple
ExecStart=/bin/bash -l -c '/data/apps/mirror/mirror server'
Restart=on-failure
[Install]
WantedBy=multi-user.targe
启动程序
$ systemctl daemon-reload
$ systemctl restart mirror.service && systemctl status mirror.service
$ systemctl enable mirror.service
在client端运行mirror程序
写入systemd系统服务
$ vim /etc/systemd/system/mirror.service
[Unit]
Description=Mirror (File sync for two sftp servers[10.16.19.21,10.16.19.24])
After=network-online.target
Requires=network-online.target
[Service]
Type=simple
ExecStart=/bin/bash -l -c '/data/apps/mirror/mirror client -h 10.16.19.21 -l /data/sftp -r /data/sftp/'
Restart=on-failure
[Install]
WantedBy=multi-user.targe
启动程序
$ systemctl daemon-reload
$ systemctl restart mirror.service && systemctl status mirror.service
$ systemctl enable mirror.service
然后2台机器上的/data/sftp目录都可以保持同步了.
学习了,我就只有服务器是linux的。