zoukankan      html  css  js  c++  java
  • Linux利用定时任务自动备份数据库并删除n天前文件

    一、在实际生产环境中遇到需要备份数据库,防止服务器或数据库崩溃数据损坏时,无法挽救的情况,一种情况我们可以部署MySQL主主互备来备份数据库,在机器资源不足以我们部署MySQL主主互备,又不能采取以人工手动定时备份数据库这种繁琐的操作时,我们可以利用Linux的定时任务crontab来自动的备份数据库

    1、我们先来看我们的需求,比如现在需要在每天晚上的1点30分自动备份MySQL数据库中的名字为mysql的库到一个指定的目录,比如root目录下的mysql_backup文件夹,那么备份命令就是下面这样

    /usr/bin/mysqldump -uUsername -pPassword mysql > /root/mysql_backup/mysql_$(date +%Y%m%d_%H%M%S).sql
    “Username”是我们数据库的用户

    “Password”是这个用户的密码

    “mysql”为我们需要备份的数据库中的某个数据库

    因为我们每天晚上都会备份一下数据库,所以备份之后我们以当时的备份时间来命名备份文件,即为“mysql_$(date +%Y%m%d_%H%M%S).sql”,比如我2019年1月30号晚上1点30分整备份的数据库即为“mysql_20190130_013000.sql”。

    2、我们的需求是在每天晚上都备份一下,那么每天都会生成一个文件,时间久了硬盘就会被塞满,而且很早之前的数据也没有太大的保留意义,那么我们可以在每天备份时同时删除一段时间之前的备份数据,比如我们需要删除30天之前的备份

    find /root/mysql_backup/ -mtime +30 -type f | xargs rm -f
    “/root/mysql_backup/”为我们备份文件的保存目录

    “-mtime +30”是设置时间为30天前

    “-type f”表明查找的类型是文件

    这行命令完成的操作是:查找/root/mysql_backup/目录下30天之前的文件并且删除。

    3、备份跟删除的命令我们都写好了,那么我们可以通过crontab来让系统每天自动的去执行这两个任务

    创建一个任务脚本mysql_autobackup.sh,写入我们刚才的两条命令并给于文件最高权限

    #!/bin/bash
    /usr/bin/mysqldump -uUsername -pPassword mysql > /root/mysql_backup/mysql_$(date +%Y%m%d_%H%M%S).sql
    find /root/mysql_backup/ -name sdadmin'*.sql*' -mtime +30 -type f | xargs rm -f
    crontab -e 写入计划任务并保存

    30 01 * * * /root/mysql_autobackup.sh
    表示每天晚上1点30分会执行root目录下的mysql_autobackup.sh脚本,就是我们上面编写的备份跟删除操作的脚本,这样就可以完成系统每天自动备份数据库并且会自动的去查找超过30天的备份并删除

    二、crontab 的格式

    1、以我们刚才写的计划任务为例

    30 01 * * * /root/mysql_autobackup.sh
    格式简化之后是下面这样

    * * * * * *
    第一列的“*”为分钟 从1~59

    第二列的“*”为小时 从0~23,0代表午夜12点

    第三列的“*”为日 从1~31

    第四列的“*”为月 从1~12

    第五列的“*”为星期 从0~6,0代表星期天

    第六列的“*”为要运行的命令

    综合起来就是下面的格式

    分 时 日 月 星期 要运行的命令
    2、举一些例子

    30 21 * * * reboot
    上面的例子表示每晚的21:30重启服务器。
    45 4 1,10,22 * * reboot
    上面的例子表示每月1、10、22号的4:45重启服务器
    10 1 * * 6,0 reboot
    上面的例子表示每周六、周日的1:10重启服务器
    0,30 18-23 * * * reboot
    上面的例子表示在每天18:00至23:00之间每隔30分钟重启服务器。
    0 23-7/1 * * * reboot
    晚上11点到早上7点之间,每隔一小时重启服务器
     
    ————————————————
    版权声明:本文为CSDN博主「咖啡那么浓」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/ywd1992/article/details/81219091

  • 相关阅读:
    BZOJ1229 USACO2008 Nov toy 玩具 【三分+贪心】*
    BZOJ1304 CQOI2009 叶子的染色 【树形DP】
    BZOJ1131 POI2008 Sta 【树形DP】
    BZOJ1096 ZJOI2007 仓库建设 【斜率优化DP】
    BZOJ4540 Hnoi2016 序列 【莫队+RMQ+单调栈预处理】*
    Codeforces 1012C Hills【DP】*
    POJ1741 Tree + BZOJ1468 Tree 【点分治】
    BZOJ2152 聪聪可可 【点分治】
    HDU1693 Eat the Trees 【插头DP】*
    RUAL1519 Formula 1 【插头DP】
  • 原文地址:https://www.cnblogs.com/zst062102/p/11683550.html
Copyright © 2011-2022 走看看