博客
关于我
架构 -- rsync补充02
阅读量:534 次
发布时间:2019-03-09

本文共 2267 字,大约阅读时间需要 7 分钟。

架构 – rsync补充

<p/rsync 是一个高效的文件同步工具,可以用于本地和远程备份。在使用 rsync 时,了解其各个参数及其作用,可以帮助我们更高效地管理备份任务。本节将从 rsync 的基本使用、到实际案例分析,以及 rsync 与备份系统的结合,逐步展开讨论。

rsync 参数说明

rsync 是一个灵活且强大的工具,其选项众多,以下是一些常用的参数和组合:

  • -a:启用归档模式,等效于 -t -r -o -p -g -D -l,主要用于保留文件和目录的属性。
  • -v:详细模式,输出包括传输速度、文件数量等信息。
  • -z:启用压缩,提高传输效率。
  • --exclude=PATTERN:指定排除不需要传输的文件。
  • --partial:支持断点续传,用户中断后可以恢复。
  • --bwlimit=100:限制传输速度,避免占用过多带宽。

Rsync 备份案例

客户端需求

  • 客户端需要提前准备存放备份目录,并遵循特定规则命名。
  • 客户端定期打包系统配置文件、应用配置等数据,并复制到指定目录。
  • 客户端每天凌晨1点执行备份任务。
  • 客户端本地保留最近7天的备份数据,避免磁盘占用过多。
  • 服务端需求

  • 服务端部署 rsync,用于接收客户端推送的备份数据。
  • 服务端需定期校验客户端推送的数据完整性。
  • 服务端每天校验结果通知管理员。
  • 服务端仅保留最近6个月的备份数据,其余数据销毁。
  • 客户端操作

    1. 创建备份目录

    mkdir /backup && echo '创建备份目录成功' || true

    2. 打包文件

    # 方式一:打包并移动文件tar zcf /backup/$(hostname)_$(date +%F)/conf.tar.gz /var/log/maillogmv /backup/$(hostname)_$(date +%F)/conf.tar.gz /backup/$(hostname)_$(date +%F)# 方式二:直接打包到指定目录tar czf /backup/$(hostname)_$(date +%F)/conf.tar.gz /var/log/maillog

    3. 推送文件

    rsync -avz /backup/ rsync_mm@172.16.1.41::backup --bwlimit=100

    脚本化操作

    #!/bin/bash# 定义变量DIR=/backupHOSTNAME=$(hostname)IP=$(hostname -I | awk '{print $2}')DATE=$(date +%F)SRC=${DIR}/${HOSTNAME}_${IP}_${DATE}# 创建备份目录[ -d $SRC ] || mkdir $SRC -p# 租用空间并打包数据cd /var && tar zcf $SRC/conf.tar.gz ./log/maillog# 推送文件export RSYNC_PASSWORD=123rsync -az $DIR/ rsync_mm@172.16.1.41::backup > /dev/null 2>&1# 定时任务crontab -e0 1 * * * /bin/bash /root/client.sh

    服务端操作

    1. 配置邮件发送

    vim /etc/mail.rcset from=171554782@qq.comset smtp=smtps://smtp.qq.com:465set smtp-auth-user=171554782@qq.comset smtp-auth-password=nvaeranunveledjaset ssl-verify=ignore

    2. 校验文件

    md5sum -c /backup/*_$(date +%F)/flag

    3. 服务端脚本

    #!/bin/bashDIR=/backupHOSTNAME=$(hostname)IP=$(hostname -I | awk '{print $2}')DATE=$(date +%F)SRC=${DIR}/${HOSTNAME}_${IP}_${DATE}# 校验文件md5sum -c $DIR/*_${DATE}/flag > $DIR/result.txt# 发送邮件通知mail -s "${DATE}备份文件校验结果" 1715554782@qq.com < $DIR/result.txt# 删除过期数据find $DIR/ -type d -mtime +180 | xargs rm -rf

    4. 定时任务

    crontab -e10 12 * * * /bin/bash /root/server.sh > /dev/null

    Rsync 结合 inotify 实现实时备份

    1. 安装 inotify 工具

    包名:inotify-tools

    2.Monitoring目录变化

    /usr/bin/inotifywait -mrq --format '%w %f' -e create,delete,attrib,close_write /backup > /dev/null 2>&1

    3. 实时备份脚本

    #!/bin/bashdir=/backupwhile true; do  cd $dir && rsync -az -R --delete . rsync_mm@172.16.1.41::backup  sleep 60done

    转载地址:http://svusz.baihongyu.com/

    你可能感兴趣的文章
    Beyond Compare4 过期解决方法
    查看>>
    多机免密登录自动化脚本
    查看>>
    VTK:可视化之PointSize
    查看>>
    VTK:可视化之RandomProbe
    查看>>
    VTK:可视化之StructuredDataTypes
    查看>>
    VTK:可视化算法之Cutter
    查看>>
    VTK:可视化算法之ProbeCombustor
    查看>>
    block多队列分析 - 2. block多队列的初始化
    查看>>
    Java时间
    查看>>
    不编译只打包system或者vendor image命令
    查看>>
    Linux系统版本控制历史
    查看>>
    HTML、CSS、JS文件加载顺序及执行情况
    查看>>
    MySQL
    查看>>
    The wxWindows Library Licence (WXwindows)
    查看>>
    linux centos7 gcc4.85 升级到gcc7.4.0
    查看>>
    十一届省赛总结
    查看>>
    leetcode——第203题——虚拟头结点
    查看>>
    leetcode——第1047题——删除字符串中的相邻重复子串
    查看>>
    leetcode——第101题——对称二叉树
    查看>>
    leetcode——第108题——将有序数组转换为二叉搜索树
    查看>>