• Centos6.9 搭建rsync服务端与客户端 案例:全网备份项目


    rsync的企业工作场景说明

    1)定时备份

    1.1生产场景集群架构服务器备份方案项目

    借助cron+rsync把所有客户服务器数据同步到备份服务器

    2)实时复制

    本地数据传输模式(local-only mode)

    /oldboy/ 与/oldboy

    /oldboy 表示oldboy目录及oldboy目录下面的内容

    /oldboy/ 只表示oldboy目录下面的内容

    --delete 复制的时候保持目标与源文件的内容一模一样

     

    通过远程shell进行数据传输

    [root@backup ~]# scp -rP 22 /etc 172.16.1.31:/tmp      #拷贝本机/etc目录到远程172.16.1.31的/tmp目录

    [root@backup ~]# rsync -avz /etc/sysconfig 172.16.1.31:/tmp  #同步本机/etc/sysconfig目录到远程172.16.1.31的/tmp目录

     

     

     

    全网备份项目

    web01服务器

    备份/var/www/html

    生成web01-2018-01-01_1.tar.gz

    md5sum压缩包>check.log

    推送当天的压缩包

    删除7天前的压缩包

     

     

     

    1.搭建rsync服务端与客户端

    backup搭建rsync服务端

    [root@backup ~]# mkdir /backup

    [root@backup ~]# useradd -s /sbin/nologin -M rsync

    [root@backup ~]# chown -R rsync.rsync /backup

    [root@backup ~]# ls -ld /backup

    drwxr-xr-x 2 rsync rsync 4096 Aug 1 06:45 /backup

    [root@backup ~]# echo 'rsync_backup:123456' >/etc/rsync.password

    [root@backup ~]# cat /etc/rsync.password

    rsync_backup:123456

    [root@backup ~]# chmod 600 /etc/rsync.password

    [root@backup ~]# ll /etc/rsync.password

    -rw------- 1 root root 20 Jun 7 18:27 /etc/rsync.password

     

    # vim /etc/rsyncd.conf

    ##rsyncd.conf start##

    uid = rsync     #指定rsync运行时候的用户

    gid = rsync     #指定rsync运行时候的用户

    use chroot = no   #安全相关

    max connections = 200   #最大的连接数

    timeout = 300 #超时的时间

    pid file = /var/run/rsyncd.pid   #pid号码存放的文件

    lock file = /var/run/rsync.lock   #锁文件

    log file = /var/log/rsyncd.log   #rsync的日志

    [backup] #模块名称

    path = /backup/     #分享的目录

    ignore errors      #忽略错误

    read only = false    #是否只读

    list = false

    hosts allow = 172.16.1.0/24 #2选1

    hosts deny = 0.0.0.0/32

    auth users = rsync_backup       #只用于验证的用户,看大门的用户

    secrets file = /etc/rsync.password    #存放密码的rsync_backup:123456

    #rsync_config_______________end

     

    [root@backup ~]# ps -ef|grep rsync

    root 1523 1 0 08:04 ? 00:00:00 rsync --daemon

    root 1588 1547 0 08:14 pts/0 00:00:00 grep rsync

    [root@backup ~]# ss -lntup|grep rsync

    tcp LISTEN 0 5 :::873 :::* users:(("rsync",1523,5))

    tcp LISTEN 0 5 *:873 *:* users:(("rsync",1523,3))

     

     

    web01作为rsync客户端配置:

    1.检查软件是否安装

    [root@web01 ~]# rpm -qa rsync

    rsync-3.0.6-12.el6.x86_64

    2.创建密码文件并修改权限:123456

    [root@web01 ~]# echo '123456' > /etc/rsync.password

    [root@web01 ~]# chmod 600 /etc/rsync.password

    3.测试

    [root@web01 ~]# rsync -avz /etc/hosts rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password

     

     

    2.书写客户端脚本

    web01脚本:

    #备份文件和配置

    tar zchf /backup/web01-$(date +%F_%w).tar.gz /var/www/html /etc/rc.local /var/spool/cron/

    #做md5sum

    cd /backup

    md5sum web01-$(date +%F_%w).tar.gz>check.log

    #推送备份数据

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

    #删除七天以前

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

     

    3.写入web01定时任务

    [root@web01 backup]# mkdir -p /server/scripts

    [root@web01 backup]# vim /server/scripts/bak-web01.sh

    #!/bin/bash

    #desc:backup html && conf

    date=$(date +%F_%w)

     

    #备份文件和配置

    tar zchf /backup/web01-${date}.tar.gz /var/www/html /etc/rc.local /var/spool/cron/

    #做md5sum

    cd /backup

    md5sum web01-${date}.tar.gz>check.log

    #推送备份数据

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

    #删除七天以前

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

     

    4.熟悉backup脚本

    #执行脚本

    [root@web01 backup]# sh /server/scripts/bak-web01.sh

     

    5.写入定时任务

    #crontab -e

    #backup conf html hkping 2018-01-27

    00 00 * * * /bin/sh /server/scripts/bak-web01.sh >/dev/null 2>&1

     

     

    backup上的要求:

    保留每周六的压缩包

    删除180天之前的文件

     

    #backup上的脚本

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

     

    #md5sum检查

    cd /backup/ && md5sum -c check.log >/backup/result.log

    if [ $? -eq 0 ];then

    mail -s "md5sum wrong" 275597862@qq.com </backup/result.log

    fi

     

    #需要打开postfix服务,

    /etc/init.d/postfix start

    chkconfig postfix on

    mail -s "md5sum wrong" 275597862@qq.com </etc/hosts

     

    #开始写check.sh脚本

    [root@backup backup]# mkdir -p /server/scripts

    [root@backup backup]# vim /server/scripts/check.sh

    #!/bin/bash

    #backup上的脚本

    find /backup/ -type f -name "*.tar.gz" -mtime +180 ! -name "*_6.tar.gz"|xargs rm

     

    #md5sum检查,错误发邮件

    cd /backup/ && md5sum -c check.log >/backup/result.log

    if [ $? -ne 0 ];then

    mail -s "md5sum wrong" 275597862@qq.com </backup/result.log

    fi

     

    #定时任务

    # crontab -e

    #check & send result at 20180801

    00 03 * * * /bin/sh /server/scripts/check.sh >/dev/null 2>&1

     

  • 相关阅读:
    less和vim中使用正则表达式搜索
    正则表达式解英语单词字谜
    正则表达式中的Quantifiers
    grep正则表达式(二)
    grep正则表达式(一)
    Linux中的touch命令总结(一)
    find命令进阶(三):xargs
    find命令进阶(二):对找到的文件执行操作exec
    构造函数
    Bean的生命周期
  • 原文地址:https://www.cnblogs.com/hkping18/p/9480206.html
Copyright © 2020-2023  润新知