Rsync同步部署web服务端配置

Rsync同步部署web服务端配置

下面正式来配置Rsync服务器,模拟真实环境服务器数据同步。

那么我们要把开发给我们的网站放在rsync同步服务器上  然后由web1  web2同步

正式安装,官网下载rsync稳定版本,然后进行安装编译。

cd  /usr/src ;wget  http://rsync.samba.org/ftp/rsync/src/rsync-3.0.7.tar.gz  

tar  xzf  rsync-3.0.7.tar.gz  && cd rsync-3.0.7 && ./configure --

prefix=/usr/local/rsync  &&make &&make install

安装完毕,配置rsync配置文件,默认/etc/不存在rsyncd.conf配置文件,需要手动创建,配置内容为如下:cat  rsyncd.conf

#########[global] 全局配置

uid = nobody

gid = nobody

扫描二维码关注公众号,回复: 6266945 查看本文章

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]

read only = yes

path = /data/www/www1

comment = www

auth users =test

secrets file = /etc/rsync.pas

hosts allow = 192.168.0.11,192.168.0.12(或者写192.168.1.0/24)

[web]

read only = yes

path = /data/www/www2

comment = web

auth users =test

secrets file = /etc/rsync.pas

hosts allow = 192.168.1.11,192.168.0.0/24

1,基于密钥同步

vi  /etc/rsync.pas      为宿主用户配置的密码(服务端):

test:test999

 保存完毕,chmod 600 /etc/rsync.pas       设置权限为宿主用户读写

最后在客户端配置同步密钥和命令,如下设置即可同步。

vi  /etc/rsync.pas  输入服务器端配置的密码:

test999

保存完毕,chmod 600 /etc/rsync.pas        设置权限为宿主用户读写。

 保存即可开始同步:执行如下语句

rsync -avz [email protected]::www /var/www/html    --password-file=/etc/rsync.pas  

rsync -avz [email protected]::web  /var/www/html   --password-file=/etc/rsync.pas  

2,基于SSH同步

除了可以使用rsync密钥进行同步之外,还有一个比较简单的同步方法就是基于linux ssh来同步。具体方法如下:

rsync  -avz  [email protected]:/data/webapps/www/www1/*  /var/www/html

,如果想每次同步不输入密码,需要做Linux主机之间免密码登录(公司常用的是这种方式)。

Rsync实时同步配置

在企业日常web应用中,某些特殊的数据需要要求保持跟服务器端实时同步,那我们该如何来配置呢?如何来实现呢?这里可以采用rsync+inotify来实现需求。

Inotify 是一个 Linux特性,它监控文件系统操作,比如读取、写入和创建。Inotify 反应灵敏,用法非常简单,并且比 cron 任务的繁忙轮询高效得多。

Rsync安装完毕后,需要安装inotify文件检查软件。同时为了同步的时候不需要输入密码,这样可以使用ssh免密钥方式进行同步。

安装inotify-tools-3.14.tar.gz 软件,tar –xzf  inotify-tools-3.14.tar.gz ;./configure  ;make

;make install 即可。配置auto_inotify.sh同步脚本,内容如下:

#!/bin/sh  

src=/data/webapps/www/www1

des=/var/www/html

ip=192.168.1.11

inotifywait -mrq --timefmt '%d/%m/%y-%H:%M' --format '%T %w%f' -e modify,delete,create,attrib ${src} | while read file  

do

 for  i  in  $ip  

      do  

      /usr/local/rsync/bin/rsync   -avz  $src root@$i:$des    

      done  

done

在服务器端后台启动该脚本,nohup  sh  auto_inotify.sh  & ,在服务器端目录新建或者删除,客户端都会实时进行相关操作。     

screen  参看后台运行任务命令

Yum –y install screen

Screen –ls                       参看后台运行任务  

screen –r +后台运行的进程号       进入后台   Ctrl+a+d 是退出

  

下面是不用ssh的rsync同步  其实步骤很简单 (从这里看出rsync不需要创建用户秘钥也可以同步)

假如192.168.1.1向192.168.1.2 同步文件

  1. 1.1上要是没有rsync命令 就安装一个
  2. 1.2上安装rsync服务并配置启动
  3. 配置 vim /etc/rsyncd.conf

写入一个配置文件

[ehallService_web1]

comment = ehallService web Rsync

path = /app/nginx/html/ (同步的路径)

read only = false

uid = sinova (这个要看1.2同步目录的所属用户

gid = app (这个要看1.2同步目录的所属组

  1. 启动rsync   

/usr/bin/rsync --daemon   --config=/etc/rsyncd.conf (不是root用户启动要配置sudo权限)

  1. 1.1上可以执行同步命令了

rsync -avz /app/weblogic/wwww/ [email protected]:: ehallService_web1

rsync –avz [email protected]::ehallService_web1 /app/weblogic/wwww/

 

 

猜你喜欢

转载自www.cnblogs.com/zhangan/p/10912376.html