server1(服务端):172.16.111.68
server2(客户端):172.16.111.61
实现server2实时同步server1的数据!
###############server1###############
1.安装rsync和xinetd,并创建目录:
yum install rsync xinetd
mkdir -p /home/rsync/
mkdir -p /home/rsync/log/
mkdir -p /home/rsync/pid/
mkdir -p /home/rsync/run/
2.配置xinetd:
vi /etc/xinetd.d/rsync
#disable = yes修改为
disable = no
3.启动xinetd服务:
service xinetd start
4.编辑rsyncd.conf配置文件: /home/rsync/rsyncd.conf >>> /etc/rsyncd.conf
uid = root
gid = root
port=873
use chroot = no
read only = no
list = no
max connections = 0
timeout = 600
log file = /home/rsync/log/rsyncd.log
pidfile = /home/rsync/pid/rsyncd.pid
lock file = /home/rsync/run/rsync.lock
[rsync]
path = /alidata/
comment = rsync
#ignore errors
auth users = root
##secrets file = /home/rsync/rsync.pass
secrets file = /etc/rsyncd.secrets
hosts allow = 172.16.111.133
hosts deny = *
###############################
vim /home/rsync/rsyncd.conf
uid = root
gid = root
port=873
use chroot = no
read only = no
list = no
max connections = 0
timeout = 600
log file = /home/rsync/log/rsyncd.log
pidfile = /home/rsync/pid/rsyncd.pid
lock file = /home/rsync/run/rsync.lock
[rsync]
path = /alidata/www/xu/
comment = rsync
ignore errors
auth users = rsync
secrets file = /home/rsync/rsync.pass
hosts allow = 172.16.111.133
hosts deny = *
5.创建用户认证文件:
vim /home/rsync/rsync.pass
vim /etc/rsyncd.secrets
root:WO4aX6QUZgqmfaOi # 130
root:T7ytUcf5DecPeZDZ # 152
root:I1obwEz5ova2xI4v # 161
root:odtLe7XhgtxpDlwM # 182
root:XkGbDd03QqHJt6R0 # 98
6.设置文件权限:
chmod 600 /home/rsync/rsyncd.conf
chmod 600 /etc/rsyncd.secrets
7.配置rsyncd.conf软链接:
ln -s /home/rsync/rsyncd.conf /etc/rsyncd.conf
8.重启xinetd服务:
service xinetd restart
###############server2###############
1.安装rsync和xinetd,并创建目录:
yum install rsync xinetd
mkdir -p /home/rsync/
mkdir -p /home/rsync/log/
mkdir -p /home/rsync/pid/
mkdir -p /home/rsync/run/
2.配置xinetd:
vi /etc/xinetd.d/rsync
#disable = yes修改为
disable = no
3.启动xinetd服务:
service xinetd start
4.创建认证密码文件:
vim /home/rsync/passwd130.txt WO4aX6QUZgqmfaOi
vim /home/rsync/passwd152.txt T7ytUcf5DecPeZDZ
vim /home/rsync/passwd161.txt I1obwEz5ova2xI4v
vim /home/rsync/passwd182.txt odtLe7XhgtxpDlwM
vim /home/rsync/passwd98.txt XkGbDd03QqHJt6R0
5.执行同步脚本:
rsync同步主服务器代码:rsync -vzrtopg --progress --password-file=/home/rsync/passwd.txt root@172.16.39.254::rsync /alidata/www/xu #### --delete参数:会清空本地/alidata/www/xu路劲下的文件
【生产】
rsync -avH --port=873 --progress /alidata/ root@172.16.111.132::rsync --password-file=/home/rsync/passwd130.txt
rsync -avH --port=873 --progress /alidata/ root@172.16.111.131::rsync --password-file=/home/rsync/passwd161.txt
rsync -avH --port=873 --progress /alidata/ root@172.16.111.129::rsync --password-file=/home/rsync/passwd98.txt
rsync -avH --port=873 --progress /alidata/ root@172.16.40.0::rsync --password-file=/home/rsync/passwd152.txt
rsync -avH --port=873 --progress /alidata/ root@172.16.111.130::rsync --password-file=/home/rsync/passwd182.txt
6.
rsync向服务器推送代码同步:rsync -avH --port=873 --progress /alidata/www/xu/ root@172.16.39.254::rsync --password-file=/home/rsync/passwd.txt
rsync -avH --port=873 --progress /alidata/www/xu/ root@172.16.111.68::rsync --password-file=/home/rsync/passwd1.txt
7.任务计划每分钟执行一次:
crontab -e
*/1 * * * * /usr/bin/rsync -vzrtopg --progress --delete --password-file=/home/rsync/passwd.txt rsync@192.168.10.1::rsync /home/www/html
【inotify】
yum install inotify-tools # 安装
ls /usr/bin/inotify* # 查看inotify*命令
# 检测/mydata路径下所有文件的操作
/usr/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w %f %e' -e modify,delete,create,attrib /alidata/
目前先留着98
DST: 服务器中同步路径
SRC: 客户端中被同步路径
【211测试】
#!/bin/bash
/usr/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w %f %e' -e modify,delete,create,attrib /mydata/ | while read events
do
rsync -azv --port=873 --progress /mydata/ root@172.16.111.68::rsync --password-file=/home/rsync/passwd1.txt
rsync -azv --port=873 --progress /mydata/ root@172.16.39.254::rsync --password-file=/home/rsync/passwd.txt
done
【40生产】
#!/bin/bash
/usr/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w %f %e' -e modify,delete,create,attrib /alidata/ | while read events
do
rsync -avH --port=873 --progress /alidata/ root@172.16.111.132::rsync --password-file=/home/rsync/passwd130.txt
rsync -avH --port=873 --progress /alidata/ root@172.16.111.131::rsync --password-file=/home/rsync/passwd161.txt
rsync -avH --port=873 --progress /alidata/ root@172.16.111.129::rsync --password-file=/home/rsync/passwd98.txt
rsync -avH --port=873 --progress /alidata/ root@172.16.40.0::rsync --password-file=/home/rsync/passwd152.txt
rsync -avH --port=873 --progress /alidata/ root@172.16.111.130::rsync --password-file=/home/rsync/passwd182.txt
done