Press "Enter" to skip to content

Linux下的双向文件同步工具

最近有在2台机器双向同步文件的需求, 于是有了本文. 上网找了一些双向文件同步的工具, 比较典型的有syncthingmirror. 本文介绍mirror的使用方法(不过好像syncthing使用更广泛一些).

  1. 在2台机器上安装好java1.8版本(ubuntu使用sudo apt install openjdk-8-jre命令即可安装);
  2. 在2台机器上安装好Watchman(安装方法);
  3. 在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目录都可以保持同步了.

One Comment

Leave a Reply

Your email address will not be published. Required fields are marked *