Rsync同步部署web服务端配置

1,参数详解:

-v, --verbose 详细模式输出。
-q, --quiet 精简输出模式。
-c, --checksum 打开校验开关,强制对文件传输进行校验。
-a, --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD。
-r, --recursive 对子目录以递归模式处理。
-R, --relative 使用相对路径信息。
-b, --backup 创建备份,也就是对于目的已经存在有同样的文件名时,将老的文件重新命名为~filename。可以使用--suffix选项来指定不同的备份文件前缀。
--backup-dir 将备份文件(如~filename)存放在在目录下。 -suffix=SUFFIX 定义备份文件前缀。
-u, --update 仅仅进行更新,也就是跳过所有已经存在于DST,并且文件时间晚于要备份的文件,不覆盖更新的文件。
-l, --links 保留软链结。
-L, --copy-links 想对待常规文件一样处理软链结。
--copy-unsafe-links 仅仅拷贝指向SRC路径目录树以外的链结。
--safe-links 忽略指向SRC路径目录树以外的链结。
-H, --hard-links 保留硬链结。
-p, --perms 保持文件权限。
-o, --owner 保持文件属主信息。
-g, --group 保持文件属组信息。
-D, --devices 保持设备文件信息。
-t, --times 保持文件时间信息。
-S, --sparse 对稀疏文件进行特殊处理以节省DST的空间。
-n, --dry-run现实哪些文件将被传输。
-w, --whole-file 拷贝文件,不进行增量检测。
-x, --one-file-system 不要跨越文件系统边界。
-B, --block-size=SIZE 检验算法使用的块尺寸,默认是700字节。
-e, --rsh=command 指定使用rsh、ssh方式进行数据同步。
--rsync-path=PATH 指定远程服务器上的rsync命令所在路径信息。
-C, --cvs-exclude 使用和CVS一样的方法自动忽略文件,用来排除那些不希望传输的文件。
--existing 仅仅更新那些已经存在于DST的文件,而不备份那些新创建的文件。
--delete 删除那些DST中SRC没有的文件。
--delete-excluded 同样删除接收端那些被该选项指定排除的文件。
--delete-after 传输结束以后再删除。
--ignore-errors 及时出现IO错误也进行删除。
--max-delete=NUM 最多删除NUM个文件。
--partial 保留那些因故没有完全传输的文件,以是加快随后的再次传输。
--force 强制删除目录,即使不为空。
--numeric-ids 不将数字的用户和组id匹配为用户名和组名。
--timeout=time ip超时时间,单位为秒。
-I, --ignore-times 不跳过那些有同样的时间和长度的文件。
--size-only 当决定是否要备份文件时,仅仅察看文件大小而不考虑文件时间。
--modify-window=NUM 决定文件是否时间相同时使用的时间戳窗口,默认为0。
-T --temp-dir=DIR 在DIR中创建临时文件。
--compare-dest=DIR 同样比较DIR中的文件来决定是否需要备份。
-P 等同于 --partial。
--progress 显示备份过程。
-z, --compress 对备份的文件在传输时进行压缩处理。
--exclude=PATTERN 指定排除不需要传输的文件模式。
--include=PATTERN 指定不排除而需要传输的文件模式。
--exclude-from=FILE 排除FILE中指定模式的文件。
--include-from=FILE 不排除FILE指定模式匹配的文件。
--version 打印版本信息。
--address 绑定到特定的地址。
--config=FILE 指定其他的配置文件,不使用默认的rsyncd.conf文件。
--port=PORT 指定其他的rsync服务端口。
--blocking-io 对远程shell使用阻塞IO。
-stats 给出某些文件的传输状态。
--progress 在传输时现实传输过程。
--log-format=formAT 指定日志文件格式。
--password-file=FILE 从FILE中得到密码。
-bwlimit=KBPS 限制I/O带宽,KBytes per second。
-h, --help 显示帮助信息。

2,下面正式来配置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

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

基于密钥同步

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

test:test999

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

启动服务器端RSYNC主进程,/usr/local/rsync/bin/rsync  --daemon --config=/etc/rsyncd.conf ,监听端口TCP 873

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

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

test999

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

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

rsync -avz test@192.168.1.116::www /var/www/html    --password-file=/etc/rsync.pas

rsync -avz test@192.168.1.116::web  /var/www/html   --password-file=/etc/rsync.pas

3,基于SSH同步

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

rsync  -avz  root@192.168.1.116:/data/webapps/www/www1/*  /var/www/html

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

4,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  & ,在服务器端目录新建或者删除,客户端都会实时进行相关操作。

5,screen  参看后台运行任务命令

Yum –y install screen

Screen –ls                       参看后台运行任务

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

6,不基于ssh的rsync同步(rsync不需要创建用户秘钥也可以同步)

如192.168.1.1向192.168.1.2 同步文件

192.168.1.1上要是没有rsync命令 就yum安装一个,在1.2上安装rsync服务并配置启动(源码或yum安装自己选择)

配置 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同步目录的所属组)

启动rsync :

/usr/bin/rsync --daemon   --config=/etc/rsyncd.conf (不是root用户启动要配置sudo权限:https://www.cnblogs.com/zhangan/p/10912464.html

在1.1上可以执行同步命令了

rsync -avz /app/weblogic/wwww/ sinova@192.168.1.2:: ehallService_web1

rsync –avz sinova@192.168.1.2::ehallService_web1 /app/weblogic/wwww/

  这种方法实现场景就是  文件服务器上编写shell脚本自动化代码同步 ,向其它web服务器同步文件,每一台web服务器都需要安装rsync服务并配置启动,很方便使用。

自动化脚本编写如下(不基于ssh免密钥):

#!/bin/bash
DATE=$(date +%Y%m%d)
SDIR="/app/weblogic/wwww/sinova/"
DIP=`echo 10.20.40.{11..14}`
DDIR="ehallService_web1" #这里是你rsync配置文件里面定义的目录
LOGDIR="/app/weblogic/logs/wo"
[ ! -d ${LOGDIR} ] && mkdir -p ${LOGDIR}
for ip in ${DIP};do
#ssh sinova@${ip} "cd ${DDIR} && rm -fr *"
rsync -avz ${SDIR} sinova@${ip}::${DDIR} > ${LOGDIR}/${ip}_wo_client_${DATE}.log
done

自动化脚本编写如下(基于ssh免密钥):

#!/bin/bash
DATE=$(date +%Y%m%d)
SDIR="/app/weblogic/wwww/sinova/"
DIP=`echo 10.20..{..}`
DDIR="/app/nginx/html" #这里是目的目录
LOGDIR="/app/weblogic/logs/wo"
[ ! -d ${LOGDIR} ] && mkdir -p ${LOGDIR}
for ip in ${DIP};do
#ssh sinova@${ip} "cd ${DDIR} && rm -fr *"
rsync -avz ${SDIR} sinova@${ip}:${DDIR} > ${LOGDIR}/${ip}_wo_client_${DATE}.log
done

Rsync同步部署web服务端配置的更多相关文章

  1. day28 rsync服务端配置和客户端

    2. rsync守护进程部署方式 客户端---服务端 上厕所 4 rsync守护进程服务端配置: 第一个历程: 下载安装软件 rpm -qa|grep rsync yum install -y rsy ...

  2. Orleans[NET Core 3.1] 学习笔记(三)( 3 )服务端配置

    服务端配置 Silo通过SiloHostBuilder和许多补充选项类以编程方式进行配置. Silo配置有几个关键方面: Orleans集群信息 集群提供程序(不知道咋翻译) Silo到Silo和Cl ...

  3. 关于如何提高Web服务端并发效率的异步编程技术

    最近我研究技术的一个重点是java的多线程开发,在我早期学习java的时候,很多书上把java的多线程开发标榜为简单易用,这个简单易用是以C语言作为参照的,不过我也没有使用过C语言开发过多线程,我只知 ...

  4. 如何将phantomjs单独部署在服务端

    如何将phantomjs单独部署在服务端 文章目录 一. 容我分析(lao dao)几句 二. 服务端 Look here 服务端phantomjs搭建 web端搭建及如何调用phantomjs 三. ...

  5. 如何提高Web服务端并发效率的异步编程技术

    作为一名web工程师都希望自己做的web应用能被越来越多的人使用,如果我们所做的web应用随着用户的增多而宕机了,那么越来越多的人就会变得越来越少了,为了让我们的web应用能有更多人使用,我们就得提升 ...

  6. Web服务端性能提升实践

    随着互联网的不断发展,日常生活中越来越多的需求通过网络来实现,从衣食住行到金融教育,从口袋到身份,人们无时无刻不依赖着网络,而且越来越多的人通过网络来完成自己的需求. 作为直接面对来自客户请求的Web ...

  7. Delphi XE5通过WebService开发Web服务端和手机客户端

    Delphi XE5通过WebService开发Web服务端和手机客户端介绍 我们开发一个三层的android程序 建立一个webservices  stand-alone vcl applicati ...

  8. mpush 服务端配置 for windows 服务自动运行

    mpush 服务端配置 以下安装部分是参照官方的步骤, 一.安装jdk1.8并配置环境变量 示例:  http://www.cnblogs.com/endv/p/6439860.html 二.Wind ...

  9. 【试水CAS-4.0.3】第06节_CAS服务端配置HTTPS

    完整版见https://jadyer.github.io/2012/05/30/tomcat-https/ /** * @see CAS服务端配置HTTPS * @see -------------- ...

随机推荐

  1. nginx和php整合安装过程记录

    1.nginx的配置:必须是指定 www用户 和www用户组访问 groupadd www useradd -g www www daokr@DK:~$ cat /etc/nginx/nginx.co ...

  2. cf 1051F 树+图

    $des$给定一张 $n$ 个点 $m$ 条边的带权无向联通图,$q$ 次询问,每次询问 $u_i$ 到 $v_i$ 的最短路长度.$n,q <= 10^5, m - n <= 20$ $ ...

  3. 复旦高等代数 I(15级)每周一题

    [问题2015A01]  证明: 第三类分块初等变换是若干个第三类初等变换的复合. 特别地, 第三类分块初等变换不改变行列式的值. [问题2015A02]  设 $n\,(n\geq 2)$ 阶方阵 ...

  4. make和rpm的编译、打包总结

    1  make工具使用 1.1 makefile基本规则 Make工具最主要也是最基本的功能就是通过makefile文件来描述源程序之间的相互关系并自动维护编译工作. Makefile的规则: tar ...

  5. 连接linux的几款工具 简介

    1.Putty --支持ppk,pub格式密码连接 --支持centos --支持windows操作系统安装,网上去下载直接可以使用,免费的 安装文件在我的百度网盘:putty 安装后如下: load ...

  6. CF1204E Natasha, Sasha and the Prefix Sums(组合数学)

    做法一 \(O(nm)\) 考虑\(f(i,j)\)为i个+1,j个-1的贡献 \(f(i-1,j)\)考虑往序列首添加一个\(1\),则贡献\(1\times\)为序列的个数:\(C(j+i-1,i ...

  7. 【洛谷】P4139 上帝与集合的正确用法

    题目描述 根据一些书上的记载,上帝的一次失败的创世经历是这样的:  第一天,上帝创造了一个世界的基本元素,称做“元”.  第二天,上帝创造了一个新的元素,称作“α”.“α”被定义为“元”构成的集合.容 ...

  8. 和小哥哥一起刷洛谷(6) 图论之SPFA算法

    关于\(spfa\) spfa伪代码: void spfa(s){ 最短路数组全部设为无限大; 队列 q; 起点s入队; s离s的距离设为零; while(队列非空){ 取出队首;弹出队首; for( ...

  9. C语言JSON序列化/反序列化

    最近想找一个C语言处理嵌套结构体和结构体数组的json库,理想的是能够很容易处理复杂结构体嵌套,并且使用简单的,但是没找到比较合适的,于是打算自己封装一个: 两个问题: C语言结构体本身没有元数据,这 ...

  10. 【转】Root检测与反检测

    0x00背景需要在手机上构建一个环境对root过的设备进行伪装,让设备里面的应用将该设备当成未root的设备.10x01 Root检测手段1.检查已安装的APK包:SuperSU应用程序或者一键roo ...