31-shell脚本案例-mysql备份脚本-《shell脚本》

admin 2025-11-06 14:36:30 系统网络 来源:ZONE.CI 全球网 4 阅读模式
  • 案例需求
  • 脚本应用场景:
  • 解决问题
  • 脚本思路
  • 实现代码

    案例需求

    写一个mysql binlog备份脚本,要求每天0点0分,计算机自动备份前一天的binlog日志,打包后发送给备份服务器。

    脚本应用场景:

    文件备份

    解决问题

    日常文件备份日常数据备份

    脚本思路

    1、确定binlog的位置及备份时间间隔 每天 当前要备份的binlog是谁 刷新binlog日志,生成新的binlog用于存储备份节点后的数据2、打包binlog日志 以年-月-日_binlog.tar.gz格式3、生成校验码 md5sum4、将校验码和压缩包存入到文件夹 文件夹命名 年-月-日 再次打包5、使用scp拷贝到备份机器6、备份机器解压收到的目录压缩包 通过校验码 教研binlog压缩包是否完整 完整 完成备份 ——-发邮件给管理员,明确备份成功 不完整 报错———发邮件给管理员,要求手动备份

    实现代码

    1. #!/bin/bash
    2. #Description:
    3. #Author: www.zutuanxue.com
    4. #Created Time:
    5. #将mysql的binlog日志备份到备份服务器
    6. ########variables
    7. db_user='root'
    8. db_password=''
    9. log='/var/log/mysql_backup.log'
    10. ###main
    11. #获得信息
    12. binlog_dir='/var/lib/mysql'
    13. current_binlog=`mysql -u $db_user -e "show master status"|egrep "binlog.[[:digit:]]*"|awk '{print $1}'`
    14. date >> $log
    15. #准备备份
    16. #1 刷新binlog
    17. mysql -u $db_user -e "flush logs"
    18. #2 打包要备份的binlog
    19. tar czf `date +%F`_binlog.tar.gz $binlog_dir/$current_binlog &>>$log
    20. #3 生成校验码
    21. md5sum `date +%F`_binlog.tar.gz > "`date +%F`_md5sum.txt"
    22. #4 存入文件夹
    23. [ ! -d `date +%F` ]&&mkdir `date +%F`
    24. mv `date +%F`_binlog.tar.gz `date +%F`
    25. mv `date +%F`_md5sum.txt `date +%F`
    26. # 打包目录
    27. tar czf `date +%F`.tar.gz `date +%F` &>>$log
    28. #5 拷贝
    29. #要求提前做证书信任
    30. scp `date +%F`.tar.gz [email protected]:/opt/backup &>>$log
    31. if [ $? -ne 0 ];then
    32. echo "ERROR:scp `date +%F`.tar.gz fail" &>>$log
    33. exit 1
    34. fi
    35. #6 校验
    36. ssh [email protected] "tar xf /opt/backup/`date +%F`.tar.gz -C /opt"
    37. #ssh [email protected] "cd /opt/backup`date +%F`"
    38. ssh [email protected] "cd /opt/`date +%F`;md5sum -c `date +%F`_md5sum.txt" &>>$log
    39. if [ $? -eq 0 ];then
    40. echo "success" &>>$log
    41. ssh [email protected] "rm -rf /opt/`date +%F`"
    42. else
    43. echo "fail" &>>$log
    44. fi
    01-shell脚本介绍-《shell脚本》 系统网络

    01-shell脚本介绍-《shell脚本》

    一、shell脚本是什么二、为什么要学shell,而不是其他计算机语言三、学习这门课程的优势四、学了能干什么五、学习什么内容六、学习的技巧七、成长路径八、学习环
    评论:4   参与:  202
      • maqingxi
        用户:pHqghUme

        e

      • maqingxi
        用户:pHqghUme

        e

      • maqingxi
        用户:pHqghUme

        e

      • maqingxi
        用户:pHqghUme

        e