• Rsync配合crontab实现文件定时异地备份


    一、压缩打包

    1.使用脚本进行压缩打包

    [root@localhost ~]# cat DataBack.sh

    #!/bin/bash

    DATE=`(date +"%Y-%m-%d")`

    tar -cPvzf /directory/backup/backup$DATE.tar.gz /directory/backup --exclude /directory/backup/a  --exclude /directory/backup/b --exclude /directory/backup/c >> tar.log

    #该脚本表示使用绝对路径以日期形式打包/directory/backup目录下除a、b、c以外的目录(参数为:--exclude $directory),并将打包日志记录到tar.log中。

    2.tar日志定时切割,防止日志文件占用太多空间

    [root@localhost ~]# cat /etc/logrotate.d/tar

    /root/log/tar.log{

        rotate 5

        weekly

        copytruncate

        missingok

        dateext

    }

    # rotate 5      表示最多存储5个归档日志

    Weekly        日志文件按周进行轮循

    Copytruncate 用于还在打开中的日志文件,把当前日志备份并截断

    Missingok     在日志轮循期间,忽略任何错误

    Datext        生成的日志文件自动加上时间标签

    二、备份服务器Rsync配置

    1.配置Rsync配置文件

    [root@localhost ~]# vim /etc/rsyncd.conf

    #全局配置文件

    uid = 0                            #指定文件传输的UID

    gid = 0                            #指定文件传输的GID

    use chroot = no                    #是否限定在该目录下,默认为        #true,当有软连接时,需要改为fasle,如果为

    #true就限定为模块默认目录,通常都在内网使用rsync所#以不配也可以

    max connections = 200              #设置最大连接数

    timeout = 600                      #超时时间

    ignore errors                      #忽略io错误

    read only = false                  #指定是否允许客户上传文件。若为 true 则不允许上传;若为 false 并且服务器目录也具有读写权限则允许上传。

    list = false              #指定当客户请求列出可以使用的模块列表时,该模块是否应该被列出。

    auth users = root         #指定以空格或逗号分隔用户,他们可以使用这个模块,用户不需要再本

                                  #系统存在,默认所有用户都可以无密码登录

    secrets file = /etc/rsync.password #指定用户名和密码文件 格式: 用户名:密码

    log file = /var/log/rsyncd.log     #日志文件路径

    [backup]                 #设置传输模块

    path = /directory/backup/ #该传输模块传送到的路径

    [root@localhost ~]# vim /etc/rsync.password   #生成认证文件

    Root:password

    [root@localhost ~]# chmod 600 /etc/rsync.pasword  #设置权限为600

    三、客户端服务器配置定时任务备份数据

    1.配置crontab定时任务

    [root@localhost ~]# crontab -e

    10 23 * * 6 /bin/sh /root/DataBack.sh > /dev/null 2>&1   #周六晚上23:10分打包备份的文件夹,输出定向到空防止/var/spool/clientmqueue爆满导致定时任务无法正常执行,清空命令:ls | xargs rm -f

    30 00 * * 7 rsync -avz --delete --password-file=/etc/rsync.password /directory/backup/ root@192.168.2555.255::backup >> /directory/bakcup/backup.log  #周日凌晨00:30rsync增量备份到备份服务器上,rsync输出记录到/directory/bakcup/backup.log文件中

    0 0 1 */1 * find /root/backup -type f -name "*.gz" -mtime +60 -exec rm {} \;  #每月1号执行任务删除超过60天的备份文件防止备份文件太多导致磁盘爆满。

  • 相关阅读:
    学完自动化测试,用小技能做了点兼职刷弹幕,小赚10W
    学会这个,助你升值加薪自动化框架之python+selenium+pytest
    我都30岁了,现在做软件测试还来得及吗
    如何从小白成长为技术大牛,阿里测试总监为你梳理成神之路【全套资源分享】
    Google公布编程语言排名,第一竟然是他?
    程序员改行率竟然高达40%,看完我沉默了
    程序员一定要远离这个万恶之源
    自动化测试框架很难吗?我不觉得,不信你看
    三年经验的程序员,为什么能力要强过80%的人
    实验十 团队作业6:团队项目用户验收&Beta冲刺
  • 原文地址:https://www.cnblogs.com/DevonL/p/16081717.html
Copyright © 2020-2023  润新知