美文网首页
4.数据库定时备份

4.数据库定时备份

作者: 若愚同学 | 来源:发表于2018-07-29 15:20 被阅读0次

    需求: 每天晚上凌晨2点30分开始对数据库进行数据备份到/backup/目录下,并且只保留30天的备份数据

    1.备份数据库命令
    //备份 账号 密码 数据库 / 路径/备份名
    mysqldump -uroot -padmin wms>/dbback/wmsbf
    
    2.日期date命令

    后面可跟格式化表达式
    date +%Y%m%d%H%M%S

    注意:跟格式化表达式的时候,date与后面的 '+'一定要有空格, '+'与后面的一定不能有空格

    //时间基本命令
    [root@lab01 userdb]# echo $(date +%Y%m%d:%H%M%S)
    20180125:131410
    
    //备份带有时间的数据库
    mysqldump -uroot -padmin wms>/backup/wms$(date +%Y%m%d).sql
    
    3.find命令查找符合条件的文件
    -mtime  +30  30天之前的文件
    -mmin   +1    1分钟前的文件
    -name   xxx   指定文件名 可以用*通配符
    
    
    /*
    find:查询
    /userdb/:要查询的目录
    -mmin:查询多久之前的,这里指分钟
    +1:1分钟以前,大小根据前面的值确定(如果是mtime则是一天以前),不写 '+'正好就是1分钟
    -name "*.sql":匹配条件
    */
    [root@lab01 userdb]# find /userdb/ -mmin +1 -name "*.sql"
    /userdb/wms.sql
    /userdb/wms2018-01-2513:07:45.sql
    

    删除查找出来的结果

    在后面添加-exec rm -fr '{}' \;
    {}占位符表示把查找到的结果放到此处来
    可以通过man手册来看说明
    
    find /userdb/ -mmin +1 -name "*.sql" -exec rm -fr '{}' \;
    
    4.编写wmsbackup.sh脚本文件
    #!/bin/bash
    find /backup/ -mtime +1 -name '*.sql' -exec rm -fr '{}' \;
    DATE=$(date +%Y%m%d-%H:%M)
    mysqldump -uroot -padmin wms>/backup/wms$DATE.sql
    
    5.添加定时任务-crontab
    • 如果没有安装则先安装
    //1.测试有没有安装定时软件crontab,没有安装则提示下面的细信息
    [root@lab01 userdb]# crontab -l
    -bash: crontab: command not found
    
    //2.查找contab的安装软件
    [root@lab01 userdb]# yum list |grep crontab
    crontabs.noarch                            1.10-33.el6                   base 
    
    //3.开始进行crontabs的安装
    [root@lab01 userdb]# yum install -y crontabs.noarch
    
    
    
    注意:该软件要重启才有效 init 6
    • 安装完成或者已经安装直接启动crontab服务
    //编辑定时任务
    crontab -e
    //表示每天凌晨2:30执行
    30 2 * * * /userdb/backup.sh
    
    //保存之后启动crontab
    /sbin/service crond start //启动服务
    

    操作相关


    1.检查是否安装crontab
    yum list installed |grep crontab
    
    2.查看yum仓库是否有该安装包
    yum list  |grep crontab
    
    3.安装crontab
    yum -y install crontabs.noarch
    
    4.编辑定时任务
    crontab -e
    */1 *  * * * /home/dbbackup/db1backup.sh 
    
    5.查看定时任务
    crontab -l 
    
    • 重启linux或者处理服务
    服务操作说明:
    /sbin/service crond start //启动服务
    /sbin/service crond stop //关闭服务
    /sbin/service crond restart //重启服务
    /sbin/service crond reload //重新载入配置
    
    • 查看crontab服务状态:
    service crond status
    
    注意sh脚本要有x执行的权限
    chmod +x  filename
    
    • crontab功能是在一定的时间间隔调度一些命令的执行。
    minute - 从0到59的整数 
        hour - 从0到23的整数 
        day - 从1到31的整数 (必须是指定月份的有效日期)
        month - 从1到12的整数 (或如Jan或Feb简写的月份)
        dayofweek - 从0到7的整数,0或7用来描述周日 (或用Sun或Mon简写来表示)
        command - 需要执行的命令
    0 3 * * * /home/dbbackup/db1backup.sh 
    */5 * * * * /home/dbbackup/db2backup.sh 
    
    其他例子:
    * * * * *              每分钟执行
    */1 * * * *           每分钟执行
    0 5 * * *               每天五点执行
    0-59/2 * * * *        每隔两分钟执行,且是偶数分钟执行,比如2,4,6
    1-58/2 * * * *        每隔两分钟执行,且是奇数分钟执行,比如3,5,7
    0 0 1,5,10 * *        每个月1号,5号,10号执行
    0 0 1-5 * *            每个月 1到5号执行
    

    相关文章

      网友评论

          本文标题:4.数据库定时备份

          本文链接:https://www.haomeiwen.com/subject/cznzmftx.html