美文网首页
rsync 守护进程及全网备份

rsync 守护进程及全网备份

作者: 你好_请关照 | 来源:发表于2019-05-19 00:14 被阅读0次

    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 rsync_backup@10.0.0.41::data
    (8、)客户端测试 (需要换一台设备进行) rsync -avz --delete /tmp/ rsync_backup@10.0.0.41::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 rsync_backup@10.0.0.41::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 守护进程及全网备份

          本文链接:https://www.haomeiwen.com/subject/gbaxzqtx.html