集群实战项目
架构组成 | 数量 | 作用说明 |
---|---|---|
负载均衡服务器 | 两台 | 对访问网站的流量进行分流,减少流量对某台服务器的压力 |
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
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