rsync 守护进程及全网备份

rsync

rsync 命令使用说明:

  • 1、命令功能:Rsync是一款开源的、快速的、多功能的、可实现全量及增量的本地或远程数据同步备份的优秀工具。
    什么使全量:全部复制(同步)过去(无论新旧)
    什么使增量:只复制(同步)有变化的(新的 新修改 新创建)
  • 2、命令功能:像scp 命令一样可以在本地同步,也可以跨主机同步,但是比scp 强大的多。
  • 3、常用配合使用命令:tar+定时任务
  • 4、rsync使用注意事项:tmp和/tmp/
    /tmp:tmp目录和tmp目录下面所有的内容
    /tmp/:tmp目录下面所有的内容
  • 5、使用场景:
    不同服务器之间数据备份 定时任务+rsync
    存储服务器实时备份(同步)sersync + rsync

rsync 命令使用格式:

rsync命令同scp 命令使用格式一样 :scp 从哪里来 到哪里去。

示例:

scp命令
[root@web01 ~]# scp 10.0.0.41:/etc/hosts /tmp #从10.0.0.41这个主机获取/etc/hosts 文件到本地/tmp目录中
[root@web01 ~]# scp /etc/hosts 10.0.0.41:/tmp #将本地/etc/hosts文件,上传到10.0.0.41主机的/tmp目录中
rsync 命令使用姿势
rsync -av -P /etc/sysconfig 10.0.0.41:/tmp #将本地 /etc/sysconfig目录 上传到10.0.0.41这个主机的/tmp文件中
rsync -av -P 10.0.0.41:/etc/sysconfig /tmp #将10.0.0.41这个主机上的 /etc/sysconfig文件,获取到本地/tmp目录下

rsync命令参数

参数 说明
-v 显示过程
-P 显示详细过程
--delete rsync同步的时候 让源(从那来) 目标(到哪里去) 一模一样;会删除/同步不同的地方
--exclude 排除
--bwlimit=RATE 限制传输速度
-a -a=-rlgtopD,相当于这七个参数
-r 递归
-l 复制软连接
-g 复制保持用户组不变
-o 所有者不变
-t 保持修改时间不变
-p 保持权限不变
-D --devices --specials 复制特殊设备

rsync 守护模式(客户端和服务端-CS模式)

服务端配置方式分一下几个步骤执行。

1、修改配置文件 /etc/rsyncd.conf
2、创建共享目录
3、添加rsync用户
4、创建密码文件
5、启动 rsync服务
6、检查rsync端口和进程
7、本地测试
8、客户端测试,文件制定密码格式(--password-file=)

rsync实现过程:

(1、)rsync 配置文件说明:


rsync 配置文件

(2、)添加rsync 用户:useradd -s /sbin/nologin -M rsync
(3、)创建共享目录:mkdir /data
注意修改属主、数组 chown rsync.rsync /data
(4、)创建rsync密码文件:echo 'rsync_bacup:123456' /etc/rsync.password
注意修改密码文件的权限 chmod 600 /etc/rsync.password
(5、)启动rsync服务:systemctl restart rsyncd
(6、)检查rsync端口和进程: ss -lntup | grep rsync && ps -ef |grep rsync
(7、)本地测试(在本地执行此命令即可):rsync -av /etc/hosts [email protected]::data
(8、)客户端测试 (需要换一台设备进行) rsync -avz --delete /tmp/ [email protected]::data --password-file=/etc/rsync.passwd
注意需要先制定存放密码的文件,然后进行测试 echo '123456'> /etc/rsync.passwd

排错:

1、auth failed on module data : data模块的密码错误了

排查思路
1)密码错误
2)/etc/rsync.password 内容是否正确
3)看日志 发现是密码文件权限的问题

[root@backup /data]# rsync /etc/hosts [email protected]::data 
Password: 
@ERROR: auth failed on module data
rsync error: error starting client-server protocol (code 5) at main.c(1648) [sender=3.1.2]

2019/05/18 14:52:37 [9000] secrets file must not be other-accessible (see strict modes option)
2019/05/18 14:52:37 [9000] auth failed on module data from UNKNOWN (10.0.0.41) for rsync_backup: ignoring secrets file

2、Operation not permitted :权限不足

排查思路
1)查看 path = /data 目录权限
2)查看 /tmp 目录权限是否正常
3)如果还有问题,查看 fake super = yes 是否配置,要是配置了还有问题 ,将配置文件中的 uid 、gid改为root 用户 ;此问题可能是centos 7 特有的坑

全网备份:

企业案例:rsync上机实战考试题:
web01
backup
某公司里有一台Web服务器,里面的数据很重要,但是如果硬盘坏了,数据就会丢失,现在领导要求你把数据在其他机器上做一个周期性定时备份。要求如下:
每天晚上12点整在Web服务器A(web01 )上打包备份网站程序目录并通过rsync命令推送到服务器B(backup)上备份保留
(备份思路可以是先在本地按日期打包,然后再利用rsync推到备份服务器上)。
具体要求如下:
1)Web服务器A和备份服务器B的备份目录必须都为/backup。
2)Web服务器站点目录假定为(/var/www/html)。
3)Web服务器本地仅保留7天内的备份。
4)每天晚上12点把备份/backup 推送到 备份服务器B上
5)备份服务器上每周六的数据都保留,其他备份仅保留180天备份。
6)备份服务器上检查备份结果是否正常,并将每天的备份结果发给管理员信箱。

思路:

1、配置rsync守护进程模式

2、客户端备份脚本

1)备份到backup目录下,并且以IP地址或主机名命名

ip=`hostname -I |awk'{print $NF }'
mkdir -p /backup/$ip

2)压缩包以日期+星期

tar zchf /backup/$ip/conf-`date +%F-%w`.tar.gz etc/  var/spool/cron/  var/www/html/

3)生成校验信息,留作检查使用

#md5sum校验码
`find /backup/$ip/ -type f -name "*.tar.gz" |xargs md5sum >/backup/$ip/check.md5`

4)发送压缩包至备份服务器

rsync -az /backup/   rsync_backup@backup::backup   --password-file=/etc/rsync.password

5)删除最近7天的压缩包

#find /backup/ -type f  -name "*.tar.gz" -mtime +7|xargs rm 

客户端:
客户端脚本完整版

cd / && \
tar zchf /backup/$ip/conf-date +%F-%w.tar.gz etc/ var/spool/cron/ var/www/html/
注意这里的反斜杠的作用,\在这里表示续行符号。

#!/bin/bash
#创建以IP地址命名的目录
ip=`hostname -I |awk '{print $NF}'`
mkdir -p /backup/$ip
#backup configure 
cd / && \
tar zchf /backup/$ip/conf-`date +%F-%w`.tar.gz etc/  var/spool/cron/  var/www/html/
#md5sum校验码
find /backup/$ip/ -type f -name "*.tar.gz" |xargs md5sum >/backup/$ip/check.md5
#push rsync 
rsync -az /backup/   rsync_backup@backup::backup   --password-file=/etc/rsync.password
#del 
#find /backup/ -type f  -name "*.tar.gz" -mtime +7|xargs rm 

3、将脚本按照要求时间添加到定时任务中

3、服务端删除与检查脚本

find /backup/ -type f -mtime +180 -name ".tar.gz" ! -name "-6.tar.gz" | xargs rm -f
md5sum --check /backup/172.16.1.37/check.md5

你可能感兴趣的:(rsync 守护进程及全网备份)