web主:192.168.1.139
web備:192.168.1.138
一、安裝web主:
1.安裝rsync
wget http://rsync.samba.org/ftp/rsync/src/rsync-3.0.9.tar.gz
tar zxvf rsync-3.0.9.tar.gz
cd rsync-3.0.9
./configure --prefix=/usr/local/rsync
make
make install
2.安裝完畢後建立認證密碼文件:
echo "123456">/usr/local/rsync/rsync.passwd
其中“123456”是我們設置的密碼
爲了安全起見我們把密碼文件的權限設置成 600:
chmod 600 /usr/local/rsync/rsync.passwd
3.安裝 inotify
wget http://github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz
tar zxvf inotify-tools-3.14.tar.gz
cd inotify-tools-3.14
./configure --prefix=/usr/local/inotify
make && make install
4.創建 rsync 複製腳本
腳本的主要作用是是將 server 端的目錄/tmp 裏的內容,如果修改了(無論是添加、修改、刪除文件)能
夠通過 inotify 監控到,並通過 rsync 實時的同步給 client 的/tmp 裏,下面是通過 shell 腳本實現的
#!/bin/bash
host=192.168.1.138
src=/web/wwwroot/
des=apabi
user=apabiuser
/usr/local/inotify/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e modify,delete,create,attrib $src | while read files
do
/usr/local/rsync/bin/rsync -vzrtopg --delete --progress --password-file=/usr/local/rsync/rsync.passwd $src $user@$host::$des
echo "${files} was rsynced" >>/var/log/rsync.log 2>&1
done
並給予 764 權限
chmod 764 rsync.sh
切記等客戶端安裝完畢後再運行這個腳本,否側會報錯
sh /web/wwwroot/rsync.sh &
5.我們還可以把 rsync.sh 腳本加入到開機啓動項裏
[root@nginx tmp]# echo "/web/wwwroot/rsync.sh" >> /etc/rc.local
6.安裝客戶端配置:
安裝 rsync
tar zxvf rsync-3.0.9.tar.gz
cd rsync-3.0.9
./configure --prefix=/usr/local/rsync
make
make install
7.創建密碼文件,注意裏面的信息要和主服務器一致
cd /usr/local/rsync
echo "apabiuser:123456" >rsync.passwd
8.給密碼文件設置 600 權限,否則啓動服務會報錯
chmod 600 rsync.passwd
9.創建 rsync 配置文件
vim rsync.conf
uid = nobody
gid = nobody
use chroot = no
max connections = 10
strict modes = yes
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsyncd.lock
log file = /var/log/rsyncd.log
[apabi]
path = /web/wwwroot/
comment = apabi file
ignore errors
read only = no
write only = no
hosts allow = 192.168.1.139
hosts deny = *
list = false
uid = root
gid = root
auth users = apabiuser
secrets file = /usr/local/rsync/rsync.passwd
其中 apabi 是 server 服務端裏的認證模塊名稱,需要與主服務器裏的一致
把配置文件命名爲 rsync.conf,放到/usr/local/rsync/目錄裏
10.啓動 rsync 服務
/usr/local/rsync/bin/rsync --daemon --config=/usr/local/rsync/rsync.conf
11.把 rsync 服務加入開機啓動項
echo "/usr/local/rsync/bin/rsync --daemon --config=/usr/local/rsync/rsync.conf" >> /etc/rc.local
12.在服務端 /web/wwwroot/ 下的文件:
#pwd
#ls
13.在客戶端 /web/wwwroot 下的文件:
#pwd
#ls
我們在服務端創建一個測試文件 apabi20130803 看能不能自動同步到客戶端
#echo "apabi test" > apabi20130803
我們在客戶端查看可以看到apabi20130803文件,就說明成功了
本文出自 “飛鴻沓膤” 博客,請務必保留此出處http://jxzhfei.blog.51cto.com/1382161/1263811