集群实战项目

 

架构组成数量作用说明
负载均衡服务器 两台 对访问网站的流量进行分流,减少流量对某台服务器的压力
Web服务器 两台 处理用户页面访问请求
NFS存储服务器 一台 存储图片、附件、头像等用户上传的静态数据资源
Rsync备份服务器 一台 对全网服务器数据进行实时与定时备份
MySql数据库服务器 一台 对动态变化数据进行存储(文本内容)
管理服务器 一台

1、作为yum仓库服务器,提供全网服务器的软件下载

2、跳板机,操作审计

3、VPN(pptp)

4、监控(nagios,zabbix)

5、兼职批量分发和管理

--

服务器说明目录信息目录作用说明
全部服务器初始目录 /server/scripts 存放脚本目录
全部服务器初始目录 /server/tools 存放软件包目录
全部服务器初始目录 /application 默认软件程序安装目录

---

架构组成作用说明软件实现
1台跳板机服务器 实现运维内部人员操作记录与审计 Jumpserver跳板机软件
1台批量管理服务器 实现集群架构服务器器批量管理与配置 Ansible批量管理服务软件
1台监控管理服务器 实现集群架构服务器运维情况监控与告警 Zabbix监控管理服务软件

---

服务器说明外网IP(NAT)内网IP(LAN区段)主机名称
nginx负载服务器 10.92.3.5/24 172.16.1.5/24 lb01
nginx负载服务器 10.92.3.6/24 172.16.1.6/24 lb02
nginx网站服务器 10.92.3.8/24 172.16.1.7/24 web01
nginx网站服务器 10.92.3.8/24 172.16.1.8/24 web02
nginx网站服务器 10.92.3.9/24 172.16.1.9/24 web03
Mysql数据服务器 10.92.3.51/24 172.16.1.51/24 db01
NFS存储服务器 10.92.3.31/24 172.16.1.31/24 nfs01
Rsync备份服务器 10.92.3.41/24 172.16.1.41/24 backup
管理服务器 10.92.3.61/24 172.16.1.61/24 m01

--

在虚拟主机中设置两块网卡
    eth0  nat模式网卡
    eht1  LAN区段网卡(区段名称为 172.16.1.0/24

 系统优化

①. hosts文件配置

\cp /etc/hosts{,.bak}
cat >/etc/hosts<<EOF
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
172.16.1.5      lb01
172.16.1.6      lb02
172.16.1.7      web01
172.16.1.8      web02
172.16.1.9      web03
172.16.1.51     db01
172.16.1.31     nfs01
172.16.1.41     backup
172.16.1.61     m01
EOF

②更改yum源

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo

③. 模板机优化配置---关闭selinux

#关闭selinux
sed -i.bak 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
grep SELINUX=disabled /etc/selinux/config 
setenforce 0
getenforce

④. 模板机优化配置---关闭iptables 

#关闭iptables         
/etc/init.d/iptables stop
/etc/init.d/iptables stop
chkconfig iptables off

⑤. 模板机优化配置---精简开机自启动服务

export LANG=en
chkconfig|egrep -v "crond|sshd|network|rsyslog|sysstat"|awk '{print "chkconfig",$1,"off"}'|bash
chkconfig --list|grep 3:on

 ⑥. 模板机优化配置---提权oldboy可以sudo

普通用户授权
#提权oldboy可以sudo(可选配置)
useradd oldboy
echo 123456|passwd --stdin oldboy
\cp /etc/sudoers /etc/sudoers.ori
echo "oldboy  ALL=(ALL) NOPASSWD: ALL " >>/etc/sudoers
tail -1 /etc/sudoers
visudo -c

⑧. 模板机优化配置---时间同步

echo '#time sync by lidao at 2017-03-08' >>/var/spool/cron/root
echo '*/5 * * * * /usr/sbin/ntpdate pool.ntp.org >/dev/null 2>&1' >>/var/spool/cron/root
crontab -l

⑨. 模板机优化配置---加大文件描述  ulimit

echo '*               -       nofile          65535 ' >>/etc/security/limits.conf 
tail -1 /etc/security/limits.conf 

⑩. 模板机优化配置---内核优化

cat >>/etc/sysctl.conf<<EOF
net.ipv4.tcp_fin_timeout = 2
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_keepalive_time = 600
net.ipv4.ip_local_port_range = 4000    65000
net.ipv4.tcp_max_syn_backlog = 16384
net.ipv4.tcp_max_tw_buckets = 36000
net.ipv4.route.gc_timeout = 100
net.ipv4.tcp_syn_retries = 1
net.ipv4.tcp_synack_retries = 1
net.core.somaxconn = 16384
net.core.netdev_max_backlog = 16384
net.ipv4.tcp_max_orphans = 16384
 
net.nf_conntrack_max = 25000000
net.netfilter.nf_conntrack_max = 25000000
net.netfilter.nf_conntrack_tcp_timeout_established = 180
net.netfilter.nf_conntrack_tcp_timeout_time_wait = 120
net.netfilter.nf_conntrack_tcp_timeout_close_wait = 60
net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 120
EOF
sysctl -p

 ⑾. 模板机优化配置---安装其他小软件

yum install lrzsz nmap tree dos2unix nc telnet sl -y

⑿. 模板机优化配置---ssh连接速度慢优化

sed -i.bak 's@#UseDNS yes@UseDNS no@g;s@^GSSAPIAuthentication yes@GSSAPIAuthentication no@g'  /etc/ssh/sshd_config
/etc/init.d/sshd reload

 虚拟主机克隆操作

第一步:调整虚拟主机网络配置信息

删除网卡(eth0 eth1)中,UUID(硬件标识信息)和HWADDR(网络mac地址)进行删除
sed -ri '/UUID|HWADDR/d'  /etc/sysconfig/network-scripts/ifcfg-eth[01]
清空网络规则配置文件
echo '>/etc/udev/rules.d/70-persistent-net.rules' >>/etc/rc.local     # 确保每次启动都回执行

第二步:关闭虚拟模板机

shutdown -h now

第三步:进行模板机的克隆操作

链接克隆、完整克隆

第四步:开启克隆后虚拟主机

(一台一台开启,确认模板主机关闭,否则网络地址冲突),设置虚拟主机地址和网卡
# 修改主机名称
hostname backup
sed -i "s#主机名称#backup#g" /etc/sysconfig/network
说明:主机名称需要填写为当前系统主机名,然后进行一下替换即可

# 修改主机IP地址信息
sed -i "s#200#41#g" /etc/sysconfig/network-scripts/ifcfg-eth[01]
cat /etc/sysconfig/network-scripts/ifcfg-eth[01]

# 重启网络服务,重新连接虚拟主机
/etc/init.d/network  restart

 

Rsync备份服务器

可实现全量及增量的本地或远程数据同步备份的工具。    跨平台
  通过rsync的一个命令替换下面4个命令
  cp
  scp -av
  rm 将一个空目录 同步到一个有数据的目录,从而实现删除的效果 rsync -r --delete /null /temp/
  ls
服务概念特性介绍
  支持拷贝普通文件与特殊文件如链接文件,设备等;
  支持排除指定文件或目录同步的功能,类似tar命令排除功能
  支持保持原文件或目录的所有属性信息不变
  支持增量同步,既只同步变化 数据,提升数据传输效率
  支持使用rcp,rsh,ssh等方式来配合进行隧道加密传输文件
  支持使用通过socket(守护进程方式)传输文件或目录数据信息
  支持用户认证方式传输数据,提升数据同步安全性
 服务工作方式介绍
   (man  rsync)
  1、本地数据备份 (cp)
    rsync [options..] src.. [dest]
  2、远程数据传输 (scp)
    pull : rsync [option...] [user@]host:src... [dest]
    push : rsync [option...] src... [user@]host:dest
  3、守护进程传输模式
    采用此种方式进行数据同步复制,是采用客户端与服务端的数据同步方式。采用守护进程传输模式语法格式信息为
    pull:
      rsync [option...] [user@]host::src...           dest
      rsync [option...] rsync://[user@]host[:port]/src...   dest 
    push:
      rsync [option...] src... [user@]host::dest # dest为模块名称
      rsync [option...] src... rsync://[user@]host[:port]/dest
 

 

命令参数参数说明
-v  ,--verbose 详细模式输出,详细显示数据传输备份情况
-z,--compress 传输时进行压缩以提高传输效率,--compress-level=NUM可按级别压缩。局域网可以不压缩
-a,--archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等价于-rtopgDI
-r,--recursive (属于-a参数) 对子目录以递归模式,即目录下的所有目录都同样传输
-t,--times(属于-a参数) 保持文件时间属性信息
-o,--owner(属于-a参数) 保持稳健属主信息
-g,--group(属于-a参数) 保持文件属组信息
-p,--perms(属于-a参数) 保持文件权限
-D,--devices(属于-a参数) 保持设备文件信息
-I,--links(属于-a参数) 保持软链接(小写字母I)
-P,--progess 显示同步的过程及传输时的进度等信息
-e,--rsh=COMMAND 使用的信道协议(remote shell),指定替代rsh的shell程序。如ssh、rcp、rsh  -e "ssh -p22"
--exclude=PATTERN 指定排除不需要传输的文件信息
--exclude-from=file 文件名所在的目录文件,即可以实现排除多少个文件
--bwlimit=RATE 实现数据传输过程限速传输,限制速率单位为kbytes 
--config=path 指定配置文件
 守护进程模式部署
服务端部署流程
    1、确认软件是否安装,若未安装则进行软件安装
    2、进行软件服务配置文件编写   (默认不存在)
      vim /etc/rsyncd.conf
3、创建备份目录管理用户
      useradd rsync -M -s /sbin/bash
4、创建备份目录,并进行授权
      make /backup
      chown -R rsync.rsync /backup
5、创建认证用户授权密码文件,并对密码文件进行授权
      echo "rsync_backup:oldbody123" >>/etc/rsync.password
      chmod 600 /etc/rsync.password
6、启动程序服务
      rsync --daemon
   7、检查是否正常启动
      ps -ef |grep rsync # 默认
      netstat -lntup |grep rsync # 默认873端口
# vim /etc/rsyncd.conf 
#rsync_config #created by HQ at 2017 ##rsyncd.conf start## uid = rsync gid = rsync use chroot = no # 数据同步时,安全相关参数;内网传输,可以关闭 max connections = 200                  # 数据存储的最大并发数  timeout = 300 pid file = /var/run/rsyncd.pid lock file = /var/run/rsync.lock            # 定义锁文件,主要用于配合max connections参数   log file = /var/log/rsyncd.log ignore errors read only = false list = false hosts allow = 172.16.1.0/24 hosts deny = 0.0.0.0/32 auth users = rsync_backup                # 指定访问备份数据库的认证用户信息,虚拟用户,不需要进行创建 secrets file = /etc/rsync.password           # 认证用户的密码文件信息 [backup]                          # 指定备份目录的模块名称信息 comment = "backup dir by oldboy" path = /backup
#ignore errors                        
#read only =false                     # 将只读模式关闭
#list = false                       # 是否在客户端可以查看服务配置信息    
#host allow = 172.16.1.0/24             # 白名单
#hosts deny = 0.0.0.0/32                 # 黑名单

 

客户端
  1、检查是否安装  rpm -qa rsync
  2、创建认证密码文件
    echo 'oldbody123' >>/etc/rsync.password
    chmod 600 /etc/rsync.password
  3、通过守护进程推送
    rsync -avz /etc/hosts  rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password
  4、拉取

 

 

 服务常见错误分析

 

总结:之前配置是粘贴的,总是出现问题,最后解决的方法是检查配置文件。
包括换行符
#strict modes = no
uid = rsync
gid = rsync
use chroot = no
max connections = 200
timeout = 300
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
ignore errors
read only = false
#list = true
hosts allow = 172.16.1.0/24
#hosts deny = 0.0.0.0/32
auth users = rsync_backup
secrets file = /etc/rsync.password
[backup]
path = /backup
conf

 

1、查看日志输出文件
  tail -f /var/log/rsyncd.log
错误提示:no route to host
# 关闭防火墙
解决:    /etc/init.d/iptables stop
错误提示:the remote path must start with a module name not a /
解决:  模块名字没写对
错误提示:auth failedon module oldboy
解决:
  1、密码真的输入错误,用户名震的错误
  2、secrets file = /etc/rsync/password 指定的密码文件盒实际密码文件名称不一致
  3、/etc/rsync.password 文件权限不是600
  4、rsync_backup:123456密码配置文件后面注意不要有空格
  5、rsync客户端密码文件中只输入密码信息即可,不要输入虚拟认证用户名称
错误提示:permission denied
解决:
  1、备份目录的属主和属组不正确,不是rsync
  2、备份目录的权限不正确,不是755
错误提示:chdir failed
# 备份目录异常
解决
  1、备份目录没有建立
  2、建立的备份存储目录和配置文件定义不一致
错误提示:invalid uid rsync
解决:    rsync服务对应rsync虚拟用户不存在了
错误提示:password file must not be other-accessible
解决: rsync客户端的秘钥文件必须是600权限
错误提示:rsync客户端连接慢       (ip->域名)
解决:
    查看日志进行分析,编写rsync服务端hosts解析文件
错误提示:connection refused(111)
解决:
  1、没有启动(开机自启)    
  2、端口号占用873   rsync --dameon --port 8730
 服务扩展应用实践

 ①守护进程多模块功能配置

 ②守护进程的排除功能

rsync -avz /test_dir/ --exclude={b,a}  rsync_backup@172.16.1.41::backup  
                                    --password-file=/etc/rsync.password
# pwd = /test_dir/
rsync -avz /test_dir/ --exclude-from=./exclde_file.txt rsync_backup@172.16.1.41::backup
                                    --password-file=/etc/rsync.password
# vim /test_dir/exclude_file.txt
a
b
# 相对路径

③守护进程来创建备份目录

 rsync -avz /etc/hosts  rsync_backup@172.16.1.41::backup01/sa/ --password-file=/etc/rsync.password
 rsync -avz /etc/hosts  rsync_backup@172.16.1.41::backup01/dev/ --password-file=/etc/rsync.password
 rsync -avz /etc/hosts  rsync_backup@172.16.1.41::backup01/dba/ --password-file=/etc/rsync.password
 守护进程的访问控制配置
在配置文件内有两个参数
hosts allow = 172.16.1.0/24
hosts deny = 0.0.0./32
守护进程无差异同步配置
rsync -avz /test_dir/ --delete rsync_backup@172.16.1.41::backup01 --password-file=/etc/rsync.password
# 两者完全一致,
# 慎用;快速清空目录

 

守护进程的列表功能配置
list = true
# 是否在客户端可以查看服务配置信息    
rsync rsync_backup@172.16.1.41:: 查看

 

 

NFS共享服务器

NFS   Network   File   System
网络文件系统
通过网络让不同的主机系统之间可以共享文件或目录

1、可以有效的解决不同主机间信息传递导致的流量问题
2、节省磁盘
3、实现数据统一一致
 RPC服务

 

系统部署

 

 

NFS在启动的时候;会启动多个进程,多个端口号,而且是随机的。


因此客户端在连接的时候,会很麻烦。


------>   使用RPC,
NFS与RPC通信,客户端直接从RPC拿链接

 

 NFS服务端部署流程
1、检查服务软件是否安装
  rpm -qa|egrep "nfs-utils|rpcbind"
2、进行软件服务安装
  yum install -y nfs-utils rpcbind

  rpm -ql nfs-utils
  /etc/rc.d/init.d/nfs <-- nfs服务启动脚本文件
  /usr/sbin/showmount <-- 检查nfs服务共享目录信息
  rpm -ql rpcbind
  /etc/rc.d/init.d/rpcbind <-- rpcbind服务启动脚本文件
  /usr/sbin/rpcbind <-- 检查nfs服务向rpc服务注册信息
3、编辑nfs配置文件(默认存在)
  # vim /etc/exports 
  /data  172.16.1.0/24(rw,sync)
4、创建nfs服务共享目录,并且进行授权
  mkdir /data
  chown -R nfsnobody.nfsnobody /data
5、启动nfs和rpc服务
  /etc/init.d/rpcbind start <- 首先启动rpcbind服务
  /etc/init.d/nfs start <- 其次启动nfs服务 reload
6、检查服务配置
  检查nfs
  rpcinfo -p 172.16.1.31
  检查是否存在可用的共享目录
  showmount -e 10.0.0.31
 NFS客户端部署流程
1、检查服务软件是否安装
  rpm -qa|egrep “nfs-utils|rpcbind”
2、进行软件服务安装
  yum install -y nfs-utils rpcbind
  /etc/init.d/rpcbind start
3、进行共享目录挂载   
  mount
-t nfs 172.16.1.31:/data /mnt
  df -h 4、进行共享存储测试
 NFS服务部署进程信息详述
rpcinfo -p 172.16.1.31
[root@ace ~]# ps -ef|egrep "rpc|nfs"
rpc        1564      1  0 09:32 ?        00:00:00 rpcbind
rpc        1065      1  0 09:32 ?        00:00:00 rpc statd		<- 检查数据存储一致性
root       4736      2  0 21:31 ?        00:00:00 [rpciod/0]
root       5363      1  0 21:47 ?        00:00:00 rpc.rquotad	<- 磁盘配额进程(remote quote server)
root       5368      1  0 21:47 ?        00:00:00 rpc.mountd	<- 权限管理验证等(NFS mount daemon)
root       5375      2  0 21:47 ?        00:00:00 [nfsd4]
root       5376      2  0 21:47 ?        00:00:00 [nfsd4_callbacks]
root       5377      2  0 21:47 ?        00:00:00 [nfsd]		<- NFS主进程
root       5378      2  0 21:47 ?        00:00:00 [nfsd] 		<- NFS主进程
root       5379      2  0 21:47 ?        00:00:00 [nfsd] 		<- NFS主进程,管理登入,ID身份判别等。
root       5380      2  0 21:47 ?        00:00:00 [nfsd]
root       5381      2  0 21:47 ?        00:00:00 [nfsd]
root       5382      2  0 21:47 ?        00:00:00 [nfsd]
root       5383      2  0 21:47 ?        00:00:00 [nfsd]
root       5384      2  0 21:47 ?        00:00:00 [nfsd]		<- NFS主进程
root       5415      1  0 21:47 ?        00:00:00 rpc.idmapd	<- name mapping daemon
																用户压缩/用户映射(记录)
root       5512   4670  0 22:02 pts/0    00:00:00 egrep rpc|nfs
NFS共享文件系统配置  
/etc/exports            nfs服务主配置文件
/usr/sbin/showmount     查看nfs服务共享目录信息
/usr/sbin/rpcinfo       查看rpc服务中是否有房源注册信息
/var/lib/nfs/etab       用于查看nfs服务默认配置信息    

/proc/mounts            nfs客户端mount挂载参数(可以查看默认挂载参数信息)

 

  # vim /etc/exports 
  /data 172.16.1.0/24(rw,sync)

 

 

    服务端设置

 

 

 

 

配置例一    /data 10.0.0.0/24(rw,sync)
说明:允许客户端读写,并且数据同步写入到服务器端的磁盘里
注意:24和“(”之间不能有空格

配置例二    /data 10.0.0.0/24(rw,sync,all_squash,anonuid=2000,anongid=2000)
说明:允许客户端读写,并且数据同步写到服务器端的磁盘里,并且指定客户端的用户UID和GID。
      早期生产环境的一种配置,适合多客户端共享一个NFS服务单目录,
      如果所有服务器的nfsnobody账户UID都是65534,则本例没什么必要了。
      早期centos5.5的系统默认情况下nfsnobody的UID不一定是65534,此时如果这些服务器共享一个NFS目录,
      就会出现访问权限问题。

配置例三    /home/oldboy 10.0.0.0/24(ro)   <-- 是为开发人员想查看线数据准备配置方式
说明:只读共享
用途:例如在生产环境中,开发人员有查看生产服务器日志的需求,但又不希望给开发生产服务器的权限,
      那么就可以给开发提供从某个测试服务器NFS客户端上查看某个生产服务器的日志目录(NFS共享)的权限,
      当然这不是唯一的方法,
      例如可以把程序记录的日志发送到测试服务器供开发查看或者通过收集日志等其它方式展现
配置说明

 

 

实时同步

一分钟推一次
crontab

实时:使用一些软件监控目录变化,有变化就推
 inotify+rsync实时同步备份
inotify是一种强大的,细粒度的。异步的文件系统事件监控机制。linux内核2.6.13之后。
可以监控文件系统的CRD移动等。

实时监控的软件。
1、将inotify安装
  存储服务器 yum install inotify-tools
2、将rsync守护进程模式部署完毕
  看上边
3、让inotify软件和rsync软件服务建立连接(shell脚本)
  
4、测试

 

/usr/bin/inotifywait                <--- 实现对数据目录信息变化监控(重点了解的命令)
/usr/bin/inotifywatch               <--- 监控数据信息变化,对变化的数据进行统计

/proc/sys/fs/inotify/max_queued_events
          设置inotify实例事件(event)队列可容纳的事件数量;默认监控事件队列长度为16384


/proc/sys/fs/inotify/max_user_instances
          设置每个用户可以运行的inotifywait或inotifywatch命令的进程数;默认每个用户可以开启inotify服务128个进程


/proc/sys/fs/inotify/max_user_watches
          设置inotifywait或inotifywatch命令可以监视的文件数量(单进程);默认只能监控8192个文件

 

inotifywait参数参数说明
 -m,--monitor 始终保持事件监听状态,(不然就监控一次)
-r 进行递归监控
-q,--quiet 将无用的输出信息,不进行显示
--timefmt 设定日期的格式(通用)
--format 输出命令执行过程中,输出的信息格式
-e 指定监控的事件信息
   
man  inotifywait

事件名称 :说明
access  文件或目录内容被读取
modify  文件或目录内容被写入
attrib  文件或目录属性改变
close_write  文件或目录关闭,在写入模式打开之后关闭的
close_nowrite  文件或目录关闭,在只读模式打开后关闭的
close  文件或目录关闭,不管读或写模式
open  文件或目录关闭,不管读或写模式
moved_to  
moved_from
move
create
delete

 

format 格式
%T  调取formattime格式
%w  路径信息
%f  文件名
%e  事件信息
%

 

#!/bin/bash
# inotify + rsync 实时备份#
inotifywait -mrq --format "%w%f" -e create,delete,moved_to,close_write /data|\ while read line do
rsync -az --delete /data/ rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password
done

# sh -x xx.sh进入调试;可以看到输出信息

# rsync -az $line rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password  
问题:当事件为删除操作时,通过rsync时,找不到此文件,会报错

 

sersync+rsync实时同步备份

 

下载 zip包  :https://codeload.github.com/wsgzao/sersync/zip/master
unzip master
cd sersync-master/
tar -xzvf sersync2.5.4_64bit_binary_stable_final.tar.gz
cd GNU-Linux-x86
mv ./* /usr/local/

[root@liushuo GNU-Linux-x86]# ll
total 1776
-rwxr-xr-x 1 root root 2214 Oct 26 2011 confxml.xml 配置文件
-rwxr-xr-x 1 root root 1810128 Oct 26 2011 sersync2 启动文件


<?xml version="1.0" encoding="ISO-8859-1"?>
<head version="2.5">
    <host hostip="localhost" port="8008"></host>
    <debug start="false"/>
    <fileSystem xfs="false"/>
    <filter start="false">    # 不同步的文件
      <exclude expression="(.*)\.svn"></exclude>
      <exclude expression="(.*)\.gz"></exclude>
      <exclude expression="^info/*"></exclude>
      <exclude expression="^static/*"></exclude>
    </filter>
    <inotify>   # 类似inotify的-e参数
      <delete start="true"/>
      <createFolder start="true"/>
      <createFile start="false"/>
      <closeWrite start="true"/>
      <moveFrom start="true"/>
      <moveTo start="true"/>
      <attrib start="false"/>
      <modify start="false"/>
    </inotify>

    <sersync>
      <localpath watch="/data">  #监控目录
          <remote ip="172.16.1.41" name="backup"/>
          <!--<remote ip="192.168.8.39" name="tongbu"/>-->
          <!--<remote ip="192.168.8.40" name="tongbu"/>-->
      </localpath>
      <rsync>
          <commonParams params="-az"/>   
          <auth start="false" users="rsync_backup" passwordfile="/etc/rsync.password"/>
          <userDefinedPort start="false" port="874"/><!-- port=874 -->
          <timeout start="false" time="100"/><!-- timeout=100 -->
          <ssh start="false"/>
      </rsync>
    <failLog path="/tmp/rsync_fail_log.sh" timeToExecute="60"/><!--default every 60mins execute once-->
    <crontab start="false" schedule="600"><!--600mins-->
        <crontabfilter start="false">
        <exclude expression="*.php"></exclude>
        <exclude expression="info/*"></exclude>
        </crontabfilter>
    </crontab>
    <plugin start="false" name="command"/>
    </sersync>

    <plugin name="command">
    <param prefix="/bin/sh" suffix="" ignoreError="true"/>    <!--prefix /opt/tongbu/mmm.sh suffix-->
    <filter start="false">
        <include expression="(.*)\.php"/>
        <include expression="(.*)\.sh"/>
    </filter>
    </plugin>

    <plugin name="socket">
    <localpath watch="/opt/tongbu">
        <deshost ip="192.168.138.20" port="8009"/>
    </localpath>
    </plugin>
    <plugin name="refreshCDN">
    <localpath watch="/data0/htdocs/cms.xoyo.com/site/">
        <cdninfo domainname="ccms.chinacache.com" port="80" username="xxxx" passwd="xxxx"/>
        <sendurl base="http://pic.xoyo.com/cms"/>
        <regexurl regex="false" match="cms.xoyo.com/site([/a-zA-Z0-9]*).xoyo.com/images"/>
    </localpath>
    </plugin>
</head>
参数-d:启用守护进程模式
参数-r:在监控前,将监控目录与远程主机用rsync命令推送一遍
c参数-n: 指定开启守护线程的数量,默认为10个
参数-o:指定配置文件,默认使用confxml.xml文件
参数-m:单独启用其他模块,使用 -m refreshCDN 开启刷新CDN模块
参数-m:单独启用其他模块,使用 -m socket 开启socket模块
参数-m:单独启用其他模块,使用 -m http 开启http模块
不加-m参数,则默认执行同步程序
./sersync -dro ./confxml.xml

 

posted @ 2019-04-23 14:45  慕沁  阅读(523)  评论(0)    收藏  举报