說明:
192.168.1.2 (rsync+inotify)-----------FTP
192.168.1.3 (rsync)---------------------backup
實驗目的:
實時自動同步:192.168.1.2 ------->192.168.1.3到目錄:/data/ftpdata ;
一、FTP服務器(rsync+inotify)
1、準備軟件包
[root@ftp ~]# mkdir /data/ftpdata
[root@ftp ~]# wget http://rsync.samba.org/ftp/rsync/rsync-3.0.9.tar.gz
[root@ftp ~]# wget http://cloud.github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz
2、安裝Rsync
[root@ftp ~]# tar -zxvf rsync-3.0.9.tar.gz
[root@ftp ~]# cd rsync-3.0.9
[root@ftp rsync-3.0.9]# ./configure --prefix=/usr/local/rsync
[root@ftp rsync-3.0.9]# make;make install
建立密碼認證文件
[root@ftp ~]# echo "111111">/etc/rsyncd.secrets
[root@ftp ~]# less /etc/rsyncd.secrets
111111
*其中111111可以自己設置密碼,rsyncd.secrets名字也可以自己設置;
權限:要將/etc/rsyncd.secrets設置爲root擁有, 且權限爲600。
[root@ftp ~]# chmod 600 /etc/rsyncd.secrets
[root@ftp ~]# ll /etc/rsyncd.secrets
-rw------- 1 root root 7 Jun9 21:24 /etc/rsyncd.secrets
3、安裝inotify
[root@ftp ~]# tar -zxvf inotify-tools-3.14.tar.gz
[root@ftp ~]# cd inotify-tools-3.14
[root@ftp inotify-tools-3.14]# ./configure --prefix=/usr/local/inotify
[root@ftp inotify-tools-3.14]# make;make install
4、創建rsync複製腳本
此項功能主要是將ftp端的目錄/data/ftpdata裏的內容,如果修改了(無論是添加、修改、刪除文件)能夠通過inotify監控到,並通過rsync實時的同步給backup的/data/ftpdata裏,下面是通過shell腳本實現的。
[root@ftp ~]# vim /opt/rsync.sh
#!/bin/bash
SRC=/data/ftpdata/
[email protected]::ftpdata
/usr/local/inotify/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format'%T %w%f' -e modify,delete,create,attrib $SRC| while
read files
do
/usr/bin/rsync -vzrtopg --delete --password-file=/etc/rsyncd.secrets$SRC $DST> /dev/null
done
:wq
[root@ftp ~]# chmod u+x /opt/rsync.sh
rsync.sh腳本加入開機啓動項
[root@ftp ~]# echo "/opt/rsync.sh" >> /etc/rc.local
防火牆開啓rsync端口:873
[root@ftp ~]# vim /etc/sysconfig/iptables
添加:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 873 -jACCEPT
重啓:
[root@ftp ~]# /etc/init.d/iptables restart
二、備份服務器(rsync)
1、準備工作
創建備份目錄:
[root@backup ~]# mkdir /data/ftpdata
2、準備軟件包
[root@backup ~]# wget http://rsync.samba.org/ftp/rsync/rsync-3.0.9.tar.gz
3、安裝rsync(備份服務器只安裝rsync)
[root@backup ~]# tar -zxvf rsync-3.0.9.tar.gz
[root@backup ~]# cd rsync-3.0.9
[root@backup rsync-3.0.9]# ./configure --prefix=/usr/local/rsync
[root@backup rsync-3.0.9]# make;make install
4、建立用戶與密碼認證文件
[root@backup ~]# echo "root:111111" > /etc/rsyncd.secrets
[root@backup ~]# less /etc/rsyncd.secrets
root:111111
注意:
請記住,在ftp端建立的密碼文件,只有密碼,沒有用戶名;而在備份服務端backup裏建立的密碼文件,用戶名與密碼都有。
權限:要將/etc/rsyncd.secrets設置爲root擁有, 且權限爲600。
[root@backup ~]#chmod 600 /etc/rsyncd.secrets
5、建立rsync配置文件
[root@backup ~]# vim /etc/rsyncd.conf
uid = root
gid = root
port = 873
use chroot = yes
read only = yes
hosts allow=192.168.1.0/255.255.255.0
hosts deny=*
max connections = 5
log file =/var/log/rsyncd.log
pid file =/var/run/rsyncd.pid
lock file =/var/run/rsyncd.lock
log format = %t %a %m %f%b
syslog facility = local3
timeout = 300
[ftpdata]
path = /data/ftpdata
list = no
read only = no
ignore errors
auth users = root
secrets file =/etc/rsyncd.secrets
:wq
啓動rsync服務
[root@backup ~]# /usr/local/rsync/bin/rsync --daemon--config=/etc/rsyncd.conf
[root@backup ~]# ps -ef |grep rsync
Rsync服務加入開機啓動項
[root@backup ~]# echo "/usr/local/rsync/bin/rsync --daemon --config=/etc/rsyncd.conf" >> /etc/rc.local
防火牆開啓rsync端口:873
[root@backup ~]# vim /etc/sysconfig/iptables
添加:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 873 -jACCEPT
重啓:
[root@backup ~]# /etc/init.d/iptables restart
現在rsync與inotify在ftp端安裝完成,rsync在備份服務器backup端也安裝完成!
重啓
[root@ftp ~]# reboot
[root@backup ~]# reboot
三、測試驗證
1、在ftp端/data/ftpdata 目錄上創建一個文件夾:
[root@ftp ftpdata]# mkdir zl
2、在backup端查看/data/ftpdata目錄是否相同;
[root@backup ~]# ll /data/ftpdata/
四、備份與恢復
1、手動備份
192.168.1.2---------->192.168.1.3
[root@ftp ~]# /usr/bin/rsync -vzrtopg --delete--password-file=/etc/rsyncd.secrets /data/ftpdata/ [email protected]::ftpdata
2、手動恢復
192.168.1.3 ---------->192.168.1.2
[root@ftp ~]# /usr/bin/rsync -vzrtopg --delete--password-file=/etc/rsyncd.secrets [email protected]::ftpdata /data/ftpdata/