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
Copyright © 2009 - Now . XPBag.com . All rights Reserved.
夜心的小站 » Rsync服务部署案例 报错总结 共享实时推送

提供最优质的资源集合

立即查看 了解详情