centos7文件同步服务器,教你在 Centos7 中使用 Unison 同步文件

原标题:教你在 Centos7 中使用 Unison 同步文件

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

d96e9e49b5036719518fd51e8704dbbd.png

环境

Centos7(1): 192.168.43.165

Centos7(2): 192.168.43.166

安装Unison

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

[root@ 192_168_43_165~]# yum -y install epel-release

[root@ 192_168_43_165~]# yum makecache

[root@ 192_168_43_165~]# yum -y install unison

两台操作系统配置ssh免密登录

[root@ 192_168_43_165~]# ssh-keygen

84371f907292386afeccc938036949c9.png

[root@ 192_168_43_165~]# ssh-copy-id root@ 192.168.43.166

[root@ 192_168_43_165~]# cd ~/.ssh

[root@ 192_168_43_165.ssh]# cat id_rsa.pub > authorized_keys

[root@ 192_168_43_165.ssh]# scp id_rsa root@ 192.168.43.166:/root/.ssh

如何使用Unison

Unison用于将目录中的一组文件同步到结构相似的另一个位置,该位置可以是本地主机或远程主机。

本地文件同步

在root家目录下面创建两个文件夹,一个是"Files",一个是"Backup"。Files里面创建文件,同步到Backup里面。

[root@ 192_168_43_165~]# mkdir Files Backup

[root@ 192_168_43_165~]# cd Files/

[root@ 192_168_43_165Files]# touch file{ 1.. 10}.txt

773ae1abffa7767515826718a3a1083b.png

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

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

9d0cedf8a25f9d1f42eb6bea8ac9cb95.png

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

7ab4dcc544ba3c8d71a8557591e32388.png

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

[root@ 192_168_43_165Backup]# echo "testtesttest"> file2.txt

[root@ 192_168_43_165Backup]# echo 'hello world!'> index.html

c3f5fedaa73702e921b97380c914cce8.png

执行unison命令:

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

f73e86a2190b1a19241c07f61894dfde.png

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

6b4334ceead467b10a8573bc6c397c7f.png

远程文件同步

如果需要进行远程文件同步,必须在本地和远程服务器上安装Unison。

下面现在两台服务器的root目录下面创建两个文件夹,为同步文件使用的。

# 在第一台服务器创建文件夹。

[root@ 192_168_43_165~]# mkdir Files

# 在第二台服务器创建文件夹。

[root@ 192_168_43_166~]# mkdir Files

下面使用-testServer选项测试本地和远程服务器之间的连通性。

[root@ 192_168_43_165~]# unison -testServer /root/Files ssh: //root@192.168.43.166//root/Files

Contacting server...

Connected [ //192_168_43_165//root/Files -> //192_168_43_166//root/Files]

8b32284b85ec3f51cb50b96cdcf1af09.png

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

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

84d9e195a36a9df0e4066915696017bb.png

5b0fb26aaaf5e31dc25506cd8ed3d902.png

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

e9d519ef158f4c34de38ba680b2d29b4.png

总结

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

责任编辑: