Unison是一个跨平台的文件同步工具,它在同步计算机或存储设备之间的数据时非常有用。

教你在 Centos7 中使用 Unison 同步文件_java

环境

  • Centos7(1): 192.168.43.165
  • Centos7(2): 192.168.43.166


安装Unison在两个系统中都要安装epel源,然后都要安装unison:

[root@ ~]# yum -y install epel-release
[root@ ~]# yum makecache
[root@ ~]# yum -y install unison

<以上代码可复制粘贴,可往左滑>
两台操作系统配置ssh免密登录

[root@ ~]# ssh-keygen

<以上代码可复制粘贴,可往左滑>

教你在 Centos7 中使用 Unison 同步文件_java_02


[root@ ~]# ssh-copy-id root@.43.166
[root@ ~]# cd ~/.ssh
[root@ .ssh]# cat id_rsa.pub > authorized_keys
[root@ .ssh]# scp id_rsa root@.43.166:/root/.ssh

<以上代码可复制粘贴,可往左滑>
如何使用UnisonUnison用于将目录中的一组文件同步到结构相似的另一个位置,该位置可以是本地主机或远程主机。本地文件同步在root家目录下面创建两个文件夹,一个是"Files",一个是"Backup"。Files里面创建文件,同步到Backup里面。

[root@ ~]# mkdir Files Backup
[root@ ~]# cd Files/
[root@ Files]# touch file{..}.txt

<以上代码可复制粘贴,可往左滑>



现在运行unison命令,同步文件到Backup文件夹里面。

[root@ ~]# unison -batch /root/Files /root/Backup

<以上代码可复制粘贴,可往左滑>



查看一下Backup文件夹,发现文件同步过来了。


现在修改一下Backup文件夹里面的某个文件,然后再添加已给文件,最后执行一下刚才的命令,看看是否会同步到Files文件夹中:


[root@ Backup]# echo  > file2.txt
[root@ Backup]# echo  > index.html

<以上代码可复制粘贴,可往左滑>



执行unison命令:

[root@ ~]# unison -batch /root/Files /root/Backup

<以上代码可复制粘贴,可往左滑>



可以看到Backup文件夹里面的内容同步到Files里面了

教你在 Centos7 中使用 Unison 同步文件_java_03

远程文件同步如果需要进行远程文件同步,必须在本地和远程服务器上安装Unison。下面现在两台服务器的root目录下面创建两个文件夹,为同步文件使用的。

# 在第一台服务器创建文件夹。
[root@ ~]# mkdir Files
# 在第二台服务器创建文件夹。
[root@ ~]# mkdir Files

<以上代码可复制粘贴,可往左滑>下面使用-testServer选项测试本地和远程服务器之间的连通性。

[root@ ~]# unison -testServer /root/Files ssh:
Contacting server...
Connected [

<以上代码可复制粘贴,可往左滑>

教你在 Centos7 中使用 Unison 同步文件_java_04


连通性没问题之后,我们就可以执行命令同步文件了:

[root@ ~]# unison -batch /root/Files ssh:

<以上代码可复制粘贴,可往左滑>

教你在 Centos7 中使用 Unison 同步文件_java_05

教你在 Centos7 中使用 Unison 同步文件_java_06


查看第二台服务器上面的/root/Files文件夹,文件是否同步过来了:

教你在 Centos7 中使用 Unison 同步文件_java_07


总结Unison非常易于使用,不需要额外的精力。它可以在GUI以及命令行实用程序中使用任何一种方式进行自定义同步。如果需要使用图形界面,可以在桌面环境执行unison-gtk-2.40打开图形界面进行配置。