当前位置: 首页 > 工具软件 > Unison > 使用案例 >

Ubuntu下使用unison实现文件双向同步

梁丘琛
2023-12-01

1 unison文件同步

1.1 背景

​ 部分情况下会涉及到文件同步,例如同步配置文件或者配置参数等,unison可以完美的解决此问题实现文件的双向同步。

1.2 安装过程

1.2.1 安装unison

apt-get unison #在线安装

1.2.2 生成ssh访问密钥

建议此处操作用普通用户操作,root操作本身就危险,免密码登陆的root就更危险了。

  1. 在普通用户的根目录下执行下列命令(A和B两台机器都需要执行)
ssh-keygen -t rsa
#在提示保存私钥(key)和公钥(public key)的位置时,使用默认值;
#在提示是否需要私钥密码(passphrase)时,直接敲回车,即不使用私钥密码。
  1. 执行上述的命令后会在A和B两台服务器普通用户的根目录下生成一个.ssh文件夹进入后会有id_rsa(私钥文件)和id_rsa.pub(公钥文件)两个文件我们使用id_rsa.pub文件即可
  2. 将id_rsa.pub文件更名为authorized_keys将A服务器上更名后的文件放到B服务器上的.ssh目录下,B服务器同样执行此操作
  3. 在A的服务器上执行ssh 20.12.144.22 date命令(其中的20.12.144.22要更换成B服务器的IP地址),如果不用输入密码直接登录,就说明配置成功

1.2.3 配置unison文件

  1. 新建unison配置文件目录及文件在用户目录下(A和B两台服务器都需要此设置)
mkdir .unison #新建目录
touch default.prf #新建文件
  1. 配置unison,将以下的配置放到default.prf中(A和B两台服务器都需要)
# Unison preferences file
root = /home/test1/ #知识库文件所在目录
root = ssh://name@20.12.144.22//home/test2 #需要同步到的文件夹
batch = true #自动
repeat = 60 #每60秒检查一次
fastcheck = false #true 表示同步时仅通过文件的创建时间来比较,如果选项为false,Unison则将比较两地文件的内容。 
sshargs = -C  #使用ssh的压缩传输方式 
path = test3 #需要检查的路径,或者指定某个文件,可以写多个
confirmbigdel = false #默认值为true,表示当需要同步的两个目录一个为空时,unison将停止,这里设置为false,即便为空unison也不会停止运转
log = false #是否开启日志,true开启false关闭
#logfile = /home/unison.log #日志存放目录
  1. 测试unison,执行下列命令,如果文件同步成功则表示功能正常
unison #执行同步
  1. 创建脚本文件
touch startup.sh
  1. 编写启动脚本,按照如下内容编写一个sh的文件脚本,并将此脚本文件放到unison目录下(unison文件夹可以在任何目录下)
nohup unison >/dev/null 2>&1 &
  1. 启动脚本,在unison目录下执行如下命令
./startup.sh
  1. 查看是否启动成功,如果存在则执行成功反之则失败
ps -edf|grep unison
 类似资料: