rsync+inotify部署

为了满足需要,之前的rsync定时推送服务,无法满足现实需要,在次更新网站架构

环境介绍:

网站Nginx集群搭建的,因为网站的数内容时常更新,但是一台一台的更新数据非常消耗时间。因此采用rsync+inotify,将数据实时的推送到集群主机上去。

远程网站IP172.16.100.99  /usr/html 

远程网站IP:172.16.100.97  /usr/html

本地推送IP:172.16.100.98  /web/data

环境:

RedHat5.9

rsync-3.1.1.tar.gz

inotify-tools-3.14.tar.gz


远程端IP99安装:

1.编译安装rsync-3.1.1.tar.gz

  tar  zxvf  rsync-3.1.1.tar.gz

  cd rsync-3.1.1

  ./configre

  make

  make install

2.编写rsyncd.conf配置文件

  uid = nobody

  gid = nobody

  max connections = 10

  use chroot = no

  strict mode = no

  pid file = /var/run/rsyncd.pid

  lock file = /var/lock/rsync.lock

  log file = /var/log/rsyncd.log

  [web99]

  path = /usr/html

  comment = Nginx's page comment

  read only = no

  write only = no

  ignore errors

  uid = root

  gid = root

  host deny = *

  host allow = 172.16.100.98

  list = false

  auth users = backup99

  secrets file = /etc/server.pass

3.编写可访问推送端主机的密码文件

  vi /etc/server.pass

  backup99:123456

4.更改密码文件权限

  chmod  600  /etc/server.pass

远程端IP97安装:

1.编译安装rsync-3.1.1.tar.gz

  tar  zxvf  rsync-3.1.1.tar.gz

  cd rsync-3.1.1

  ./configre

  make

  make install

2.编写rsyncd.conf配置文件

  uid = nobody

  gid = nobody

  max connections = 10

  use chroot = no

  strict mode = no

  pid file = /var/run/rsyncd.pid

  lock file = /var/lock/rsync.lock

  log file = /var/log/rsyncd.log

  [web97]

  path = /usr/html

  comment = Nginx's page comment

  read only = no

  write only = no

  ignore errors

  uid = root

  gid = root

  host deny = *

  host allow = 172.16.100.98

  list = false

  auth users = backup97

  secrets file = /etc/server.pass

3.编写可访问推送端主机的密码文件

  vi /etc/server.pass

  backup97:123456

4.更改密码文件权限

  chmod  600  /etc/server.pass

远程端IP98安装

1.编译安装rsync-3.1.1.tar.gz

  tar  zxvf  rsync-3.1.1.tar.gz

  cd rsync-3.1.1

  ./configre

  make

  make install

2.编译安装inotify-tools-3.14.tar.gz

  tar zxvf inotify-tools-3.14.tar.gz

  cd  inotify-tools-3.14

  ./configure

  make

  make intall

3.编写inotify同步脚本

 vi inotify-sync.sh

 #!/bin/bash
 host1=172.16.100.99
 host2=172.16.100.97
 src=/web/data/
 dst1=web99
 dst2=web97
 #dst2=images
 user1=backup99
 user2=backup97
 inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e     modify,create,delete,attrib $src |while read files
 do
 rsync -vzrtopg  --delete  --progress  --exclude "*access*" --exclude "*debug*"  --password-file=/etc/server.pass  $src $user1@$host1::$dst1
 rsync -vzrtopg  --delete  --progress  --exclude "*access*" --exclude "*debug*"  --password-file=/etc/server.pass  $src $user2@$host2::$dst2
 echo "${files} was rsyncd" >> /var/log/rsync.log 2>&1
 done


你可能感兴趣的:(File,网站,主机,nobody)