Rsync服务部署案例 报错总结 共享实时推送
rsync介绍
什么是rsync
rsync是可以实现增量备份的工具。配合任务计划,rsync能实现定时或间隔同步,配合inotify或sersync,可以实现触发式的实时同步。
rsync可以实现scp的远程拷贝(rsync不支持远程到远程的拷贝,但scp支持)、cp的本地拷贝、rm删除和"ls -l"显示文件列表等功能。但需要注意的是,rsync的最终目的或者说其原始目的是实现两端主机的文件同步,因此实现的scp/cp/rm等功能仅仅只是同步的辅助手段,且rsync实现这些功能的方式和这些命令是不一样的
## 远程copy,scp
scp 源文件 目标
# 推文件
scp /tmp/yum.log root@10.0.0.41:/root
# 推目录
scp -r /etc root@10.0.0.41:/root
# 拉文件
scp root@10.0.0.41:/root /tmp/yum.log
# 拉目录
scp -r root@10.0.0.41:/root /etc
小提示:利用rsync还可以实现删除文件和目录的功能,这又相当于rm命令,一个rsync相当于scp、cp、rm,但是还优于他们的每一个命令。
rsync备份类型
- 全量备份(支持)
- 增量备份(支持)
- 差异备份(不支持差异备份)
Rsync的传输模式
本地传输模式(类似命令cp)
# 语法
Local: rsync [OPTION...] SRC... [DEST]
## 拷贝文件
[root@backup ~]# rsync /root/3 /usr/local/src/
## 拷贝目录
[root@backup ~]# rsync -a /etc /usr/local/src/
远程传输模式(类似命令scp)
## Access via remote shell:
Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]
# 拉:rsync [选项...] 用户名@主机IP:路径 本地文件或目录
[root@backup ~]# rsync -avz root@172.16.1.7:/etc/hostname /usr/local/games/
Push: rsync [OPTION...] SRC... [USER@]HOST:DEST
# 推:rsync [选项...] 本地文件或目录 用户名@主机IP:路径
[root@backup ~]# rsync -avz /backup/2020-05-06_web01_etc.tar.gz root@10.0.0.7:/tmp/
这种模式是借助SSH的通道进行传输(ssh端口)
# 权限不足报错
rsync: mkstemp "/root/.host_ip.sh.nrcrr0" failed: Permission denied (13)
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1179) [sender=3.1.2]
守护进程模式(服务)
## 语法:
## Access via rsync daemon:
Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST]
# 拉:rsync [-avz] zls_bak@10.0.0.41::[模块] 源文件 目标
rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST](忘记它)
Push: rsync [OPTION...] SRC... [USER@]HOST::DEST
# 推:rsync [-avz] 源文件 zls_bak@10.0.0.41::[模块] 目标
rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST(忘记它)
注意:推和拉的区别,就是源文件的位置在哪里,拉:源文件在后面。只能在客户端上面去执行
## rsync 重要选项
-a #归档模式传输, 等于-tropgDl
-v #详细模式输出, 打印速率, 文件数量等
-z #传输时进行压缩以提高效率
--delete #让目标目录和源目录数据保持一致
--password-file=xxx #使用密码文件
------------------- -a 包含 ------------------
-r #递归传输目录及子目录,即目录下得所有目录都同样传输。
-t #保持文件时间信息
-o #保持文件属主信息
-p #保持文件权限
-g #保持文件属组信息
-l #保留软连接
-D #保持设备文件信息
----------------------------------------------
-L #保留软连接指向的目标文件
-e #使用的信道协议,指定替代rsh的shell程序
--exclude=PATTERN #指定排除不需要传输的文件模式
--exclude-from=file #文件名所在的目录文件
rsync服务部署
安装服务端
安装rsync服务
[root@backup ~]# yum install -y rsync
修改配置文件
[root@backup ~]# vim /etc/rsyncd.conf
删除里面所有内容
复制如下内容:
uid = rsync 指定进程启动uid
gid = rsync 指定进程启动uid
port = 873 rsync服务的端口
fake super = yes 无需让rsync以root身份运行,允许接收文件的完整属性
use chroot = no 禁锢指定的目录
max connections = 200 最大连接数
timeout = 600 超时时间
ignore errors 忽略错误
read only = false 不只读(可读可写)
list = false 不允许别人查看模块名
auth users = yxj_backup 传输文件的用户
secrets file = /etc/rsync.passwd 传输文件的用户和密码文件
log file = /var/log/rsyncd.log 日志文件
#####################################
[yxj] 模块名
comment = welcome to oldboyedu backup! 注释,没啥用
path = /backup 备份的目录
根据配置文件内容,创建出来需要的用户,目录,密码文件
# 创建用户
[root@backup ~]# useradd rsync -s /sbin/nologin -M
# 创建备份目录
[root@backup ~]# mkdir /backup
# 修改备份目录的属主和属主
[root@backup ~]# chown -R rsync.rsync /backup/
# 创建用户名和密码存放的文件
[root@backup ~]# vim /etc/rsync.passwd
rsync_backup:111
# 修改目录权限为600
[root@backup ~]# chmod 600 /etc/rsync.passwd
启动服务,检测端口,检测进程
# 启动服务
[root@backup ~]# systemctl start rsync
# 加入开机自启动
[root@backup ~]# systemctl enable rsync
# 检测rsync端口
[root@backup ~]# netstat -lntup|grep 873
tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 6330/rsync
tcp6 0 0 :::873 :::* LISTEN 6330/rsync
# 检测进程
[root@backup ~]# ps -ef|grep [r]sync
root 6330 1 0 02:38 ? 00:00:00 /usr/bin/rsync --daemon --no-detach
安装客户机web01
安装rsync服务
[root@webo1 ~]# yum install -y rsync
创建用户密码文件,修改密码文件权限
创建用户密码文件
[root@webo1 ~]# vim /etc/rsync.passwd
111
修改文件权限
[root@webo1 ~]# chmod 600 /etc/rsync.passwd
测试从客户端往服务端推送重要备份文件
[root@webo1 ~]# rsync -avz /etc/passwd yxj_bak@10.0.0.41::yxj --password-file=/etc/rsync.passwd
定时任务
编写脚本
[root@web01 ~]# vim /etc/rsync.sh
#!/bin/bash
dir=(date +%Y-%m-%d)_(hostname)
/bin/tar zcPf "dir"_etc.tar.gz /etc
/bin/rsync -avz "dir"_etc.tar.gz yxj_bak@10.0.0.41::yxj --password-file=/etc/rsync.passwd
添加定时任务
[root@web01 ~]# crontab -e
0 23 * * * /bin/sh /etc/rsync.sh
启动定时任务
[root@web01 etc]# systemctl start crond
查看结果
[root@backup backup]# ll
total 29336
-rw-r--r--. 1 rsync rsync 30033270 May 7 07:27 2020-05-07_web02_etc.tar.gz
安装客户机web02
安装rsync服务
[root@webo2 ~]# yum install -y rsync
创建用户密码文件,修改密码文件权限
创建用户密码文件
[root@webo2 ~]# vim /etc/rsync.passwd
111
修改文件权限
[root@webo2 ~]# chmod 600 /etc/rsync.passwd
测试从客户端往服务端推送重要备份文件
[root@webo2 ~]# rsync -avz /etc/passwd yxj_bak@10.0.0.41::yxj --password-file=/etc/rsync.passwd
定时任务
编写脚本
[root@web02 ~]# vim /etc/rsync.sh
#!/bin/bash
dir=(date +%Y-%m-%d)_(hostname)
/bin/tar zcPf "dir"_etc.tar.gz /etc
/bin/rsync -avz "dir"_etc.tar.gz yxj_bak@10.0.0.41::yxj --password-file=/etc/rsync.passwd
添加定时任务
[root@web02 ~]# crontab -e
0 23 * * * /bin/sh /etc/rsync.sh
启动定时任务
[root@web02 etc]# systemctl start crond
查看结果
[root@backup backup]# ll
total 29336
-rw-r--r--. 1 rsync rsync 30033270 May 7 07:27 2020-05-07_web02_etc.tar.gz
rsync/nfs报错总结
rsync报错总结
No route to host
connection refused
1.网络 [root@web01 ~]# ping 10.0.0.41
2.端口 [root@web01 ~]# telnet 10.0.0.41 873
3.防火墙 [root@backup ~]# systemctl status firewalld
4.selinux [root@backup ~]# getenforce
# 1.检查配置文件的用户 auth users = zls_bak
[root@backup ~]# vim /etc/rsync_account zls_bak:123
2.检查配置文件的模块名 [zls]
3.检查服务端密码文件的权限
[root@backup ~]# ll /etc/rsync_account -rw-r--r-- 1 root root 12 May 9 09:29 /etc/rsync_account
[root@backup ~]# chmod 600 /etc/rsync_account
4.如果客户端也创建了密码文件,必须检查客户端的密码文件权限是不是600
不认识 uid 是rsync的用户 [root@backup ~]# id rsync
[root@backup ~]# useradd rsync -s /sbin/nologin -M
权限不足,因为配置文件指定rsync用户传输文件,所有备份目录是root root,权限不够
[root@backup ~]# ll /opt/lol/ -d drwxr-xr-x 2 root root 6 May 9 09:14 /opt/lol/
修改属主和属组 [root@backup ~]# chown -R rsync.rsync /opt/lol/
[root@backup ~]# ll /opt/lol/ -d drwxr-xr-x 2 rsync rsync 6 May 9 09:14 /opt/lol
nfs报错总结
网络(通过)
查看服务端配置文件里面的ip,ping
[root@web01 ~]# ping 172.16.1.31
端口(nfs不检查端口)
防火墙
[root@nfs ~]# systemctl status firewalld
[root@nfs ~]# systemctl stop firewalld
selinux
[root@nfs ~]# getenforce
查看配置文件,允许的IP(网段)是谁
[root@nfs ~]# ll /yonghushuju/ -d
[root@nfs ~]# chown www.www /yonghushuju/
[root@nfs ~]# chown 666.666 /yonghushuju/
rsync无差异同步
rsync -avz /etc/ zls_bak@10.0.0.41::lol
rsync -avz /etc zls_bak@10.0.0.41::lol
#区别:目录后面加/ 就会将目录下的所有内容推送到指定位置
#目录后面不加/ 就会将目录本身和下面所有内容一并推送
rsync --delete (rm)
# 无差异同步,保证两边目录的内容是一致的
rsync -avz --delete /etc zls_bak@10.0.0.41::lol
rsync -avz /etc zls_bak@10.0.0.41::wzry
注意:危险
rsync限速
[root@nfs01 ~]# rsync -avz --bwlimit=1 rsync_backup@172.16.1.41::backup/ /data/
--bwlimit:限制同步磁盘的IO
某企业rsync部署案例
客户端需求
1.客户端提前准备存放的备份的目录,目录规则如下:/backup/nfs_172.16.1.31_2018-09-02
2.客户端在本地打包备份(系统配置文件、应用配置等)拷贝至/backup/nfs_172.16.1.31_2018-09-02
3.客户端最后将备份的数据进行推送至备份服务器
4.客户端每天凌晨1点定时执行该脚本
5.客户端服务器本地保留最近7天的数据, 避免浪费磁盘空间
服务端需求
1.服务端部署rsync,用于接收客户端推送过来的备份数据
2.服务端需要每天校验客户端推送过来的数据是否完整
3.服务端需要每天校验的结果通知给管理员
4.服务端仅保留6个月的备份数据,其余的全部删除
思路
1.环境准备
2.部署rsync服务端
部署rsync服务
配置邮箱
编写脚本
验证测试
写crontab
3.部署rsync客户端(web01)
部署rsync服务
写脚本
执行脚本测试
写crontab
环境准备
使用3台服务器主机名分别为web01、backup 、nfs主机信息见下表:
角色 | 外网 | 内网 | 主机名称 |
---|---|---|---|
WEB | 10.0.0.7 | 172.16.1.7 | web01 |
Rsync | 10.0.0.41 | 172.16.1.41 | backup |
部署Rsync服务端
安装rsync服务
[root@backup ~]# yum install -y rsync
修改配置文件
[root@backup ~]# vim /etc/rsyncd.conf
删除里面所有内容
复制如下内容:
uid = rsync 指定进程启动uid
gid = rsync 指定进程启动uid
port = 873 rsync服务的端口
fake super = yes 无需让rsync以root身份运行,允许接收文件的完整属性
use chroot = no 禁锢指定的目录
max connections = 200 最大连接数
timeout = 600 超时时间
ignore errors 忽略错误
read only = false 不只读(可读可写)
list = false 不允许别人查看模块名
auth users = yxj_backup 传输文件的用户
secrets file = /etc/rsync.passwd 传输文件的用户和密码文件
log file = /var/log/rsyncd.log 日志文件
#####################################
[yxj] 模块名
comment = welcome to oldboyedu backup! 注释,没啥用
path = /backup 备份的目录
根据配置文件内容,创建出来需要的用户,目录,密码文件
# 创建用户
[root@backup ~]# useradd rsync -s /sbin/nologin -M
# 创建备份目录
[root@backup ~]# mkdir /backup
# 修改备份目录的属主和属主
[root@backup ~]# chown -R rsync.rsync /backup/
# 创建用户名和密码存放的文件
[root@backup ~]# vim /etc/rsync.passwd
rsync_backup:111
# 修改目录权限为600
[root@backup ~]# chmod 600 /etc/rsync.passwd
启动服务,检测端口,检测进程
# 启动服务
[root@backup ~]# systemctl start rsyncd
# 加入开机自启动
[root@backup ~]# systemctl enable rsyncd
# 检测rsync端口
[root@backup ~]# netstat -lntup|grep 873
tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 6330/rsync
tcp6 0 0 :::873 :::* LISTEN 6330/rsync
# 检测进程
[root@backup ~]# ps -ef|grep [r]sync
root 6330 1 0 02:38 ? 00:00:00 /usr/bin/rsync --daemon --no-detach
配置邮箱
安装邮箱
[root@backup backup]# yum install -y mailx
将如下内容添加入邮箱
# 1.配置服务器发邮件(安装发邮件服务)
[root@qls ~]# yum install -y mailx
# 2.修改mail的配置文件
[root@qls ~]# vim /etc/mail.rc
#发件人
set from=253097001@qq.com
#邮件服务器
set smtp=smtp.qq.com
#发件人用户名
set smtp-auth-user=253097001@qq.com
#发件人密码(QQ邮箱不可以使用密码,只能使用授权码)
set smtp-auth-password=xxxx
#登录方式
set smtp-auth=login
#邮件服务器协议及端口
set smtp=smtps://smtp.qq.com:465
#忽略证书
set ssl-verify=ignore
#指定证书位置
set nss-config-dir=/root/.certs
mkdir -p /root/.certs
## 进入证书目录
cd /root/.certs
## 获取腾讯证书
echo -n | openssl s_client -connect smtp.qq.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ~/.certs/qq.crt
certutil -A -n "GeoTrust SSL CA" -t "C,," -d ~/.certs -i ~/.certs/qq.crt
certutil -A -n "GeoTrust Global CA" -t "C,," -d ~/.certs -i ~/.certs/qq.crt
certutil -L -d /root/.certs
certutil -A -n "GeoTrust SSL CA - G3" -t "Pu,Pu,Pu" -d ~/.certs -i ~/.certs/qq.crt
# 测试
[root@localhost .certs]# echo '123'|mail -s '测试' 467519399@qq.com
编写脚本
[root@backup ~]# vim md5jy.sh
#!/bin/bash
#设置普通变量
D=(date +%F)
IP=(ifconfig eth1|awk 'NR==2 {print 2}')
H=(hostname)
bk_dir=/backup
local_dir=/backup/{H}_{IP}_{D}
#将校验结果发送到管理员邮箱
md5sum -c{bk_dir}/*/passwd.md5 |mail -s "(date +%F)_(hostname)_rsync备份校验结果" 467519399@qq.com
#保留六个月的备份结果其它的删除
find /backup/ -type d ! -mtime -180 ! -name 'backup' |xargs rm -rf
验证测试
[root@backup ~]# sh md5jy.sh
写crontab
[root@backup ~]# crontab -e
05 1 * * * /bin/sh /root/rsync_back.sh &>/dev/mull
启动crontab
[root@web02 etc]# systemctl start crond
安装客户机web01,nfs01
安装rsync服务
[root@webo1 ~]# yum install -y rsync
创建用户密码文件,修改密码文件权限
创建用户密码文件
[root@webo1 ~]# vim /etc/rsync.passwd
111
修改文件权限
[root@webo1 ~]# chmod 600 /etc/rsync.passwd
测试从客户端往服务端推送重要备份文件
[root@webo1 ~]# rsync -avz /etc/passwd yxj_bak@10.0.0.41::yxj --password-file=/etc/rsync.passwd
写脚本
[root@web01 ~]# vim rsync
#!/bin/bash
# 基础变量
H=(hostname)
IP=(ifconfig eth1|awk NR==2'{print 2}')
D=(date +%F)
bak_dir="/backup"
local_dir="{bak_dir}/{H}_{IP}_{D}"
# 判读本地目录是否存在
if [ ! -d local_dir ];then
mkdir -plocal_dir
fi
# 打包
cd /etc && \
tar zcf {local_dir}/{D}_passwd.tar.gz passwd
#生成校验码
md5sum {local_dir}/{D}_passwd.tar.gz >{local_dir}/passwd.md5
# rsync推送
rsync -azlocal_dir yxj_backup@10.0.0.41::yxj --password-file=/etc/rsync.passwd
# 保留7天的数据
find /backup/ -type d ! -mtime -7 ! -name 'backup'|xargs rm -rf
执行脚本测试
[root@web01 ~]# sh rsync_back.sh
写crontab
#编辑rsync
[root@backup ~]# crontab -e
00 1 * * * /bin/sh /root/rsync_back.sh &>/dev/mull
#启动crontab
[root@web02 etc]# systemctl start crond
共享文件实时推送至rsync服务端
环境准备
主机名 | 外网IP | 内网IP | 角色 | 部署服务 |
---|---|---|---|---|
web01 | 10.0.0.7 | 172.16.1.7 | rsync的客户端,nfs的客户端,网站 | nfs,apache,php |
web02 | 10.0.0.8 | 172.16.1.8 | rsync的客户端,nfs的客户端,网站 | nfs,apache,php |
nfs01 | 10.0.0.31 | 172.16.1.31 | rsync的客户端,nfs的服务端(共享存储) | sersync,nfs |
backup | 10.0.0.41 | 172.16.1.41 | rsync的服务端 | rsync |
1.部署apache和php(web01,web02)
1.安装apache和php
[root@web01 ~]# yum install -y httpd php
[root@web02 ~]# yum install -y httpd php
2.修改apache的启动用户
[root@web01 ~]# vim /etc/httpd/conf/httpd.conf
66 User www
67 Group www
3.创建用户
[root@web01 ~]# groupadd www -g 666
[root@web01 ~]# useradd www -u 666 -g 666 -s /sbin/nologin -M
4.部署代码
[root@web01 ~]# cd /var/www/html/
[root@web01 html]# rz -E kaoshi.zip
[root@web01 html]# unzip kaoshi.zip
5.修改代码,固定用户上传文件的目录
[root@web01 html]# vim /var/www/html/upload_file.php
$wen="/var/www/html/upload";
6.修改代码所在目录的权限(站点目录)
[root@web01 html]# chown www.www -R /var/www/html/
7.启动服务,并加入开机自启
[root@web01 html]# systemctl start httpd
[root@web01 html]# systemctl enable httpd
8.检查端口
[root@web01 html]# netstat -lntup|grep 80
9.检查进程
[root@web01 html]# ps -ef|grep [h]ttpd
2.部署NFS客户端(web01,web02)
1.安装nfs服务
[root@web01 ~]# yum install -y nfs-util
3.部署NFS服务端
# 1.安装nfs服务
[root@nfs ~]# yum install -y nfs-utils
# 2.修改配置文件
[root@nfs ~]# vim /etc/exports
/yxj_2020 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)
# 3.创建共享目录
[root@nfs ~]# mkdir /yxj_2020
# 4.创建666用户
[root@nfs ~]# groupadd www -g 666
[root@nfs ~]# useradd www -u 666 -g 666 -s /sbin/nologin -M
# 5.授权666用户给共享目录
[root@nfs ~]# chown www.www /yxj_2020
# 6.启动服务,并加入开机自启
[root@nfs ~]# systemctl start rpcbind nfs-server
[root@nfs01 ~]# systemctl enable nfs-server
4.挂载NFS目录
1.客户端查看nfs服务端的共享目录
[root@web01 www]# showmount -e 172.16.1.31
Export list for 172.16.1.31:
/yxj_2020 172.16.1.0/24
挂在目录
[root@web02 html]# mount -t nfs 172.16.1.31:/yxj_2020 /var/www/html/
查看
[root@web01 nfs_yxj]# df -h|grep 'yxj_2020'
172.16.1.31:/yxj_2020 18G 1.3G 16G 8% /var/www/html
# 9.打开网页,访问:http://10.0.0.7 http://10.0.0.8
http://10.0.0.7/2020-05-11/33_%e8%92%8b%e6%9f%90%e6%9f%90.docx.jpg
http://10.0.0.8/2020-05-11/33_%e8%92%8b%e6%9f%90%e6%9f%90.docx.jpg
# 10.保证每台服务器的时间同步
部署sersync(nfs)
sersync是可以实现增量备份的工具。配合任务计划,rsync能实现定时或间隔同步,配合inotify或sersync,可以实现触发式的实时同步
# 0.安装sersync的依赖包
[root@nfs ~]# yum install -y rsync inotify-tools
# 1.下载sersync
[root@nfs ~]# wget https://raw.githubusercontent.com/wsgzao/sersync/master/sersync2.5.4_64bit_binary_stable_final.tar.gz
# 2.解压sersync
[root@nfs ~]# tar xf sersync2.5.4_64bit_binary_stable_final.tar.gz
# 3.移动并改名
[root@nfs ~]# mv GNU-Linux-x86 /usr/local/sersync
# 4.修改配置文件
[root@nfs ~]# vim /usr/local/sersync/confxml.xml
<?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>
<delete start="true"/>
<createFolder start="true"/>
<createFile start="false"/>
<closeWrite start="true"/>
<moveFrom start="true"/>
<moveTo start="true"/>
<attrib start="true"/>
<modify start="true"/>
</inotify>
<sersync>
<!-- 客户端需要监控的目录 -->
<localpath watch="/yxj_2020">
<!-- rsync服务端的IP 和 name:模块 -->
<remote ip="10.0.0.41" name="nfs"/>
<!--<remote ip="192.168.8.39" name="tongbu"/>-->
<!--<remote ip="192.168.8.40" name="tongbu"/>-->
</localpath>
<rsync>
<!-- rsync命令执行的参数 -->
<commonParams params="-az"/>
<!-- rsync认证start="true" users="rsync指定的匿名用户" passwordfile="指定一个密码文件的位置权限必须600" -->
<auth start="true" users="nfs_bak" passwordfile="/etc/rsync.pas"/>
<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>
5.创建客户端的密码文件
[root@nfs ~]# vim /etc/rsync.pass
111
6.授权密码文件权限为600
[root@nfs ~]# chmod 600 /etc/rsync.pas
7.启动服务
[root@nfs ~]# /usr/local/sersync/sersync2 -rdo /usr/local/sersync/confxml.xml
rsync客户端部署(backup)
1.安装rsync
[root@backup ~]# yum install -y rsync
2.修改配置文件
[root@backup ~]# vim /etc/rsyncd.conf
uid = www
gid = www
port = 873
fake super = yes
use chroot = no
max connections = 200
timeout = 600
ignore errors
read only = false
list = false
auth users = yxj_backup
secrets file = /etc/rsync.passwd
log file = /var/log/rsyncd.log
#####################################
[yxj]
comment = welcome to oldboyedu backup!
path = /backup
3.创建www用户
[root@backup ~]# groupadd www -g 666
[root@backup ~]# useradd www -u 666 -g 666 -s /sbin/nologin -M
4.创建密码文件,修改目录权限为600
[root@backup ~]# vim /etc/rsync.passwd
yxj_backup:111
5.给密码文件授权600,不让其他用户看到用户名和密码
[root@backup ~]# chmod 600 /etc/rsync.passwd
6.创建备份目录
[root@backup ~]# mkdir /backup
7.授权备份目录的数组和属为www
[root@backup ~]# chown www.www /backup/
8.启动服务并加入开机自启
[root@backup ~]# systemctl start rsyncd
[root@backup ~]# systemctl enable rsyncd
9.检查端口
[root@backup ~]# netstat -lntup|grep 873
10.检查进程
[root@backup ~]# ps -ef|grep [r]sync
nfs实时推送配置文件至backup
[root@nfs ~]# vim rsync_back.sh
rsync -avz /etc/passwd yxj_backup@10.0.0.41::yxj --password-file=/etc/rsync.passwd