Centos6安装配置Unison+Inotify双向同步

简介:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
Unison简介          
Unison是windows和unix平台下都可以使用的文件同步工具,它能使两个文件夹(本地或网络上的)保持内容的一致。unison拥有其它一些同步工具或文件系统的相同特性,但也有自己的特点:          
      1.跨平台使用;          
      2.对内核和用户权限没有特别要求;          
      3. unison是双向的,它能自动处理两分拷贝中更新没有冲突的部分,有冲突的部分将会显示出来让用户选择更新策略;          
     4.只要是能连通的两台主机,就可以运行unison,可以直接使用socket连接或安全的 ssh 连接方式,对带宽的要求不高,使用类似 rsync 的压缩传输协议
unison各种版本下载地址:          
http: //www .seas.upenn.edu/~bcpierce /unison//download .html    
unison编译器下载地址:          
http: //caml .inria.fr /download .en.html
inotify下载地址
http: //inotify-tools .sourceforge.net/
 
一、编译安装unison
1、 #编译安装ocaml
[root@104 ~] # cd /usr/local/src/
[root@104 src] # wget http://caml.inria.fr/pub/distrib/ocaml-4.03/ocaml-4.03.0.tar.gz
[root@104 src] # tar xf ocaml-4.03.0.tar.gz 
[root@104 src] # cd ocaml-4.03.0
[root@104 ocaml-4.03.0] # ./configure 
[root@104 ocaml-4.03.0] # make world opt
[root@104 ocaml-4.03.0] # make install
 
2、 #编译安装Unison
[root@104 ~] # cd /usr/local/src/
[root@104 src] # wget http://www.seas.upenn.edu/~bcpierce/unison//download/releases/stable/unison-2.48.4.tar.gz
[root@104 src] # tar xf unison-2.48.4.tar.gz 
[root@104 src] # cd src/
[root@104 src] #  yum install -y ctags-etags glibc-static
[root@104 src] # make UISTYLE=text THREADS=true STATIC=true
#使用 ”UISTYLE=text THREADS=true STATIC=true“ 表示使用命令行方式,加入线程支持,以静态模式编译
#在执行完上面的命令后,会在当前目录下生成可执行文件unison,将其复制到系统的PATH路径即可
[root@104 src] # cp unison /usr/local/bin/
 
二、配置双机 ssh 信任
unison同步远程目录时要登录到远程服务器,配置互相信任
1,在俩台机器上创建RSA密钥
(1)以root用户登录
(2)在root用户的主目录内创建. ssh 目录并设置正确的权限
[root@104 ~] # mkdir ~/.ssh
[root@104 ~] # chmod -R 700 ~/.ssh
(3)使用sshh-keygen命令生产RSA密钥
[root@104 ~] # ssh-keygen -t rsa
Generating public /private  rsa key pair.
Enter  file  in  which  to save the key ( /root/ . ssh /id_rsa ): 
Enter passphrase (empty  for  no passphrase): 
Enter same passphrase again: 
Your identification has been saved  in  /root/ . ssh /id_rsa .
Your public key has been saved  in  /root/ . ssh /id_rsa .pub.
The key fingerprint is:
75:e4:e8:90:47:3b:c3:60:7a:6d:85:a0:45:db:c1:9e root@104
The key's randomart image is:
+--[ RSA 2048]----+
|       .*oo.o    |
|       = OoB     |
|      o =.%.o    |
|       . *E+     |
|        S .      |
|                 |
|                 |
|                 |
|                 |
+-----------------+
2、 #添加密钥到授权密钥文件中
(1)以root用户登录
(2)在本机执行:
[root@104 ~] # cd ~/.ssh
[root@104 . ssh ] # ssh "-p 22" 192.168.9.104 cat /root/.ssh/id_rsa.pub >> authorized_keys
[root@104 . ssh ] # ssh "-p 22" 192.168.9.106 cat /root/.ssh/id_rsa.pub >> authorized_keys
[root@104 . ssh ] # scp authorized_keys 192.168.9.106:/root/.ssh/
root@192.168.9.106's password: 
authorized_keys                                                                               100%  780     0.8KB /s    00:00    
[root@104 . ssh ] # chmod 600 /root/.ssh/authorized_keys 
(3)在106机器上执行
[root@106 ~] # chmod 600 /root/.ssh/authorized_keys 
(4)验证测试
[root@104 . ssh ] # ssh 192.168.9.104 date
Wed Aug 31 12:10:27 CST 2016
[root@104 . ssh ] # ssh 192.168.9.106 date
Wed Aug 31 12:10:46 CST 2016
[root@106 ~] # ssh 192.168.9.104 date
The authenticity of host  '192.168.9.104 (192.168.9.104)'  can't be established.
RSA key fingerprint is 57:83:da:b9:ee:de:2a:1f:f1:74:da:ec:43:fa:7b:56.
Are you sure you want to  continue  connecting ( yes /no )?  yes
Warning: Permanently added  '192.168.9.104'  (RSA) to the list of known hosts.
Wed Aug 31 12:11:10 CST 2016
[root@106 ~] # ssh 192.168.9.106 date
The authenticity of host  '192.168.9.106 (192.168.9.106)'  can't be established.
RSA key fingerprint is 67:ff:e7:b0:5f:3b:46:e9:d7:8d:e1:10:21:02:8b:ce.
Are you sure you want to  continue  connecting ( yes /no )?  yes
Warning: Permanently added  '192.168.9.106'  (RSA) to the list of known hosts.
Wed Aug 31 12:11:30 CST 2016
#不需要输入密码就能显示系统日期,说明ssh互相信任配置成功
 
三、编译安装inotify
#inotify特性需要Linux内核的支持,安装inotify-tools确认系统内核为2.6.13版本以上,
[root@104 ~] # uname -r
2.6.32-431.el6.x86_64  
[root@104 ~] # ls -l /proc/sys/fs/inotify
total 0
-rw-r--r-- 1 root root 0 Aug 30 12:28 max_queued_events
-rw-r--r-- 1 root root 0 Aug 30 12:28 max_user_instances
-rw-r--r-- 1 root root 0 Aug 30 12:28 max_user_watches
如果有上面三项输出,表示系统已经默认支持inotify,接着就可以开始安装inotify-tools了。
[root@104 ~] # cd /usr/local/src/
[root@104 src] # wget http://github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz
[root@104 src] # tar xf inotify-tools-3.14.tar.gz 
[root@104 src] # cd inotify-tools-3.14
[root@104 inotify-tools-3.14] # ./configure 
[root@104 inotify-tools-3.14] # make
[root@104 inotify-tools-3.14] # make install
[root@104 inotify-tools-3.14] # ll /usr/local/bin/inotifywa*
-rwxr-xr-x 1 root root 44287 Aug 31 12:23  /usr/local/bin/inotifywait
-rwxr-xr-x 1 root root 41377 Aug 31 12:23  /usr/local/bin/inotifywatch
#inotify-tools安装完成后,会生成inotifywait和inotifywatch两个指令,其中,inotifywait用于等待文件或文件集上的一个特定事件,它可以监控任何文件和目录设置,并且可以递归地监控整个目录树。         
inotifywatch用于收集被监控的文件系统统计数据,包括每个inotify事件发生多少次等信息。
 
 
四,配置unison,测试同步zabbix的php目录
#104编写脚本
[root@104 ~] # vim /data0/inotify.sh 
 
#/bin/bash
ip2= "192.168.9.106"
src2= "/data0/a/"
dst2= "/data0/a/"
/usr/local/bin/inotifywait  -mrq -e create,delete,modify,move $src2 |  while  read  line;  do
/usr/local/bin/unison  -batch $src2  ssh : // $ip2/$dst2
echo  -n  "$line "  >>  /var/log/inotify .log
echo  ` date  cut  -d  " "  -f1-4` >>  /var/log/inotify .log
done
[root@104 ~] # chmod +x  /data0/inotify.sh  
[root@104 ~] # nohup /data0/inotify.sh &
#106编写脚本
[root@106 ~] # vim /data0/inotify.sh 
 
#/bin/bash
ip1= "192.168.9.104"
src1= "/data0/a/"
dst1= "/data0/a/"
/usr/local/bin/inotifywait  -mrq -e create,delete,modify,move $src1 |  while  read  line;  do
/usr/local/bin/unison  -batch $src1  ssh : // $ip1/$dst1
echo  -n  "$line "  >>  /var/log/inotify .log
echo  ` date  cut  -d  " "  -f1-4` >>  /var/log/inotify .log
done
[root@106 ~] # chmod +x /data0/inotify.sh 
[root@106 ~] # nohup /data0/inotify.sh &
 
五、测试









本文转自 wpf926 51CTO博客,原文链接:http://blog.51cto.com/wupengfei/1958257,如需转载请自行联系原作者
目录
相关文章
|
3月前
|
应用服务中间件 Linux 网络安全
centos7 下离线安装gcc g++ nginx,并配置nginx进行网络流转发
centos7 下离线安装gcc g++ nginx,并配置nginx进行网络流转发
111 0
|
2月前
|
缓存
详解CentOS8更换yum源后出现同步仓库缓存失败的问题
详解CentOS8更换yum源后出现同步仓库缓存失败的问题
107 0
|
1月前
|
Java Linux
Flume【环境搭建 01】CentOS Linux release 7.5 安装配置 apache-flume-1.9.0 并验证
【2月更文挑战第16天】Flume【环境搭建 01】CentOS Linux release 7.5 安装配置 apache-flume-1.9.0 并验证
33 0
|
1月前
|
分布式计算 关系型数据库 MySQL
Sqoop【部署 01】CentOS Linux release 7.5 安装配置 sqoop-1.4.7 解决警告并验证(附Sqoop1+Sqoop2最新版安装包+MySQL驱动包资源)
【2月更文挑战第8天】Sqoop CentOS Linux release 7.5 安装配置 sqoop-1.4.7 解决警告并验证(附Sqoop1+Sqoop2最新版安装包+MySQL驱动包资源)
99 1
|
1天前
|
运维 网络协议 Linux
【运维系列】Centos7安装并配置PXE服务
PXE是Intel开发的预启动执行环境,允许工作站通过网络从远程服务器启动操作系统。它依赖DHCP分配IP,DNS服务分配主机名,TFTP提供引导程序,HTTP/FTP/NFS提供安装源。要部署PXE服务器,需关闭selinux和防火墙,安装dhcpd、httpd、tftp、xinetd及相关服务,配置引导文件和Centos7安装源。最后,通过syslinux安装引导文件,并创建pxelinux.cfg/default配置文件来定义启动参数。
5 0
|
1天前
|
运维 网络协议 Linux
【运维系列】Centos7安装并配置postfix服务
安装CentOS7的Postfix和Dovecot,配置Postfix的`main.cf`文件,包括修改完全域名、允许所有IP、启用邮箱等。然后,配置Dovecot的多个配置文件以启用auth服务和调整相关设置。重启Postfix和Dovecot,设置开机自启,并关闭防火墙进行测试。最后,创建邮箱账户并在Windows邮箱客户端中添加账户设置。
9 0
|
1天前
|
运维 Linux 网络安全
【运维系列】Centos7安装配置ntp服务
配置yum并安装ntp,编辑ntp配置文件,取消17行注释,适应本机网段,22行设置使用本地时间。关闭防火墙,重启ntp服务。测试时先关闭防火墙,然后使用ntpdate命令成功同步时间。
4 0
|
1天前
|
Linux 网络安全
Centos6.5安装并配置NFS服务
该内容描述了在Linux系统中设置NFS服务的步骤。首先挂载yum源,然后安装NFS服务,并编辑配置文件。接着,重启rpcbind和NFS服务,可能需要重复此过程以解决初始可能出现的问题。此外,关闭防火墙策略,并再次重启服务。最终,根目录被共享,特定IP网段被允许访问。
7 0
|
15天前
|
网络协议
centos8 网卡 Nmcli(是network的简写 Nmcli)配置网络
centos8 网卡 Nmcli(是network的简写 Nmcli)配置网络
15 0
|
15天前
|
网络协议 Linux 网络安全
centos7下最简单的 unison实现文件双向同步图文详解
centos7下最简单的 unison实现文件双向同步图文详解
12 0