CentOS6.5使用Rsync+Inotify-tools實現數據實時同步

eg:

操作系統:CentOS release 6.5

服務器IP:rsync_server(數據源) 192.168.23.27

                 rsync_client  (目標端)192.168.23.67

同步目錄: rsync_server       /home/public

   rsync_client        /home/public  


rsync_client  (目標端)192.168.23.67

1、安裝Rsync服務端

[root@zabbixserver ~]# yum -y xinted rsync^C
[root@zabbixserver ~]# cat /etc/xinetd.d/rsync
# default: off
# description: The rsync server is a good addition to an ftp server, as it \
#       allows crc checksumming etc.
service rsync
{
        disable = yes
        flags           = IPv6
        socket_type     = stream
        wait            = no
        user            = root
        server          = /usr/bin/rsync
        server_args     = --daemon
        log_on_failure  += USERID
}
[root@zabbixserver ~]# cat /etc/rsyncd.conf
uid = root
gid = root
max connections=4
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsyncd.lock
secrets file= /etc/rsyncd.passwd
hosts allow = 192.168.23.0/24
[www]
comment = public
path= /home/public
read only = no
exclude= test
auth users= work
secrets file= /etc/rsync.passwd
這些是我的配置文件:/etc/xinetd.d/rsync,/etc/rsyncd.conf
[root@zabbixserver ~]# cat /etc/rsync.passwd
work:123abc
[root@zabbixserver ~]# ls -l /etc/rsync.passwd
-rw------- 1 root root 12 Sep 27 00:17 /etc/rsync.passwd
[root@zabbixserver ~]#service xinetd restart
啓動rsync 服務
 rsync --daemon --config=/etc/rsyncd.conf

rsync_server(數據源) 192.168.23.27

安裝Rsync客戶端

[root@localhost rsync_server]# whereis rsync    #查看系統是否已安裝rsync
rsync: /usr/bin/rsync /usr/share/man/man1/rsync.1.gz    #說明已經安裝
[root@localhost rsync_server]#

yum install  xinetd  #已安裝rsync只安裝xinetd即可,CentOS中是以xinetd來管理rsync服務的

yum install rsync xinetd #如果默認沒有rsync,運行此命令進行安裝rsync和xinetd

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[root@localhost rsync_server]# vim /etc/xinetd.d/rsync
service rsync
{
        disable = no    #修改爲no
        flags           = IPv6
        socket_type     = stream
        wait            = no
        user            = root
        server          = /usr/bin/rsync
        server_args     = --daemon
        log_on_failure  += USERID
}
[root@localhost rsync_server]# /etc/init.d/xinetd restart
[root@localhost rsync_server]# vim /etc/passwd.txt
123456
[root@localhost rsync_server]# chmod 600 /etc/passwd.txt


測試

在rsync_server的/home/public目錄下創建文件testfile,在rsync_server端運行同步命令同步數據:

sync -avH --port=873 --progress --delete  /home/public/ [email protected]::www --password-file=/etc/rsync.passwd

[root@rsync etc]# rsync -avH --port=873 --progress --delete  /home/public/ [email protected]::www --password-file=/etc/rsync.passwd
sending incremental file list
./
test.txt
          77 100%    0.00kB/s    0:00:00 (xfer#1, to-check=0/2)

sent 166 bytes  received 36 bytes  404.00 bytes/sec
total size is 77  speedup is 0.38


在rsync_server(數據源) 192.168.23.67上安裝Inotify-tools工具,實時觸發rsync進行同步

1、安裝Inotify-tools工

[root@zabbixserver ~]# ll /proc/sys/fs/inotify/max_  
max_queued_events   max_user_instances  max_user_watches


rsync_client

1
2
3
[root@localhost rsync_client]# ls
file
[root@localhost rsync_client]#


在rsync_server(數據源) 10.15.43.100上安裝Inotify-tools工具,實時觸發rsync進行同步

1、安裝Inotify-tools工

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
[root@localhost src]# ll /proc/sys/fs/inotify    #查看服務器內核是否支持inotify,出現下面的內容,說明服務器內核支持inotify
total 0
-rw-r--r-- 1 root root 0 Jul 27 10:32 max_queued_events
-rw-r--r-- 1 root root 0 Jul 27 10:32 max_user_instances
-rw-r--r-- 1 root root 0 Jul 27 10:32 max_user_watches
[root@localhost src]# uname -r        #Linux下支持inotify的內核最小爲2.6.13
2.6.32-642.el6.x86_64
[root@localhost src]# tar zxvf inotify-tools-3.14.tar.gz
[root@localhost src]# cd inotify-tools-3.14
[root@localhost inotify-tools-3.14]# ./configure --prefix=/app/inotify
[root@localhost inotify-tools-3.14]# make && make install
[root@localhost inotify-tools-3.14]# vim /etc/profile    #設置系統環境變量
export PATH=/app/inotify/bin:$PATH
[root@localhost inotify-tools-3.14]# source /etc/profile
[root@localhost inotify-tools-3.14]# echo " /app/inotify/lib" > /etc/ld.so.conf.d/inotify.conf
[root@localhost inotify-tools-3.14]# ln -s /app/inotify/include /usr/include/inotify
[root@localhost inotify-tools-3.14]# sysctl -a|egrep -i "max_queued_events|max_user_watches|max_user_instances"    #修改inotify默認參數(inotify默認內核參數值太小)
fs.inotify.max_user_instances = 128
fs.inotify.max_user_watches = 8192
fs.inotify.max_queued_events = 16384
fs.epoll.max_user_watches = 201420
[root@localhost inotify-tools-3.14]# vim /etc/sysctl.conf
fs.inotify.max_user_instances = 65535
fs.inotify.max_user_watches = 99999999
fs.inotify.max_queued_events = 99999999    
[root@localhost inotify-tools-3.14]# cat /proc/sys/fs/inotify/{max_user_instances,max_user_watches,max_queued_events}
65535
99999999
99999999
[root@localhost inotify-tools-3.14]#

   

 


報錯:

如果以上測試都通過,說明inotify實時觸發rsync同步腳本運行正常。

至此,Linux下Rsync+Inotify-tools實現數據實時同步完成。如果要雙向同步可以把以上反過來部署次。


報錯:



ps:

本人初次使用rsync,如本文有錯誤,歡迎聯繫本人。文中可能出現步驟不完善的情況,具體安裝流程可以參考原文博客http://ityunwei2017.blog.51cto.com/7662323/1951362

本文轉載自博客:http://ityunwei2017.blog.51cto.com/7662323/1951362

rsync參考資料:http://man.linuxde.net/rsync

參考文章:rsync實時同步(搭配inotify-tools) http://blog.csdn.net/liyongming1982/article/details/12271869

 

configure: error: no acceptable C compiler found in $PATH 問題解決

http://blog.csdn.net/duguduchong/article/details/8699774

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章