准备两台机子,一台是192.168.10.150做数据源服务器,一台是192.168.10.151做目标服务器,如图所示:
现在要实现的需求是150的/data/www/目录实时同步到151的/data/www/目录下
一、在151上配置rsync 服务器
cd /usr/local/src
wget http://rsync.samba.org/ftp/rsync/src/rsync-3.0.7.tar.gz
tar -zxvf rsync-3.0.7.tar.gz
cd rsync-3.0.7
./configure --prefix=/usr/local/rsync make && make install 编辑配置文件 vim /etc/rsyncd.conf,把它的内容改成如下: 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| uid = nobody
gid = nobody
use chroot = no
max connections =30
pid file =/var/run/rsyncd.pid
lock file =/var/run/rsyncd.lock
log file =/var/log/rsyncd.log
transfer logging =yes
log format = %t %a%m %f %b
syslog facility =local3
timeout = 300
[www]
path=/data/www/
comment=www
read only = no
auth users=zhang
secretsfile=/etc/rsync.pas
hostsallow=192.168.10.150
|
然后 mkdir -p /data/www/
chown -R nobody.nobody /data/www/
vim /etc/rsync.pas编辑密码文件,加入以下内容:
zhang:123456
chmod 600 /etc/rsync.pas
/usr/local/rsync/bin/rsync–daemon 启动rsyncd服务
二、在150上的操作
安装rsync,和151上的一样,两边的rsync版本要保持一致,不然可能会出现莫名其妙的错误
vim /etc/rsync.pas 编辑密码文件,加入以下内容:
123456
chmod 600 /etc/rsync.pas
安装inotify-tools
tar -zxvf inotify-tools-3.14.tar.gz
cd inotify-tools
./configure--prefix=/usr/local/inotify-tools/
make && make install
mkdir -p /data/www/
配置实时同步脚本,rsync-inotify.sh
1
2
3
4
5
6
7
| #!/bin/bash
dir=/data/www/
ip=192.168.10.151
/usr/local/inotify-tools/bin/inotifywait-mrq --timefmt '%d/%m/%y-%H:%M' --format '%T %w%f' -emodify,delete,create,attrib ${dir} | while read file
do
/usr/local/rsync/bin/rsync -av --progress--delete --password-file=/etc/rsync.pas /data/www/ zhang@$ip::www
done
|
然后执行nohup sh rsync-inotify.sh & 即可
|