Mysql 定时备份
 二维码 470
发表时间:2016-06-11 17:04

1,编程写linux上的备份脚本


#!/bin/bash
nowtime=$(date "+%Y-%m-%d")
nowtime=$nowtime"-"$(date "+%H-%M-%S")
mysqldump -uroot -proot test1 | gzip > /usr/mysqlback/MysqlFiles/test1_$nowtime.sql.gz
mysqldump -uroot -proot test2 | gzip > /usr/mysqlback/MysqlFiles/test2_$nowtime.sql.gz


这是备份数据库test1和test2的脚本,并且把备份生成的脚本进行压缩


2,添加定时任务


执行:crontab -e


然后按i键进入编辑状态,添加执行的脚本位置及定时


     分     小时    日       月       星期     命令

     0-59   0-23   1-31   1-12     0-6     command     (取值范围,0表示周日一般一行对应一个任务)


记住几个特殊符号的含义:

        “*”代表取值范围内的数字,
        “/”代表”每”,
        “-”代表从某个数字到某个数字,
        “,”分开几个离散的数字
       
例如:
   5  
*   *   *  *   ls             指定每小时的第5分钟执行一次ls命令

   30   5   *   *  *   ls             指定每天的 5:30 执行ls命令
   30   7   8   *  *   ls             指定每月8号的7:30分执行ls命令
   30   5   8   6  *   ls             指定每年的6月8日5:30执行ls命令
   30   6   *   *  0   ls             指定每星期日的6:30执行ls命令[注:0表示星期天,1表示星期1,
以此类推,也可以用英文来表示,sun表示星期天,mon表示星期一等。

   30   3  10,20 *  *   ls             每月10号及20号的3:30执行ls命令[注:“,”用来连接多个不连续的时段]

   25  8-11 *   *  *   ls             每天8-11点的第25分钟执行ls命令[注:“-”用来连接连续的时段]

   */15  *  *   *  *   ls             每15分钟执行一次ls命令 [即每个小时的第0 15 30 45 60分钟执行ls命令
   
    *    */2 *   *  *   ls             每两个小时执行一次ls命令

    30   6   */10 *  *   ls             每个月中,每隔10天6:30执行一次ls命令[即每月的1、11、21、31日是的6:30执行一次ls 命令。


    50   7   *   *  *   root     run-parts     /etc/cron.daily   每天7:50以root 身份执行/etc/cron.daily目录中的所有可执行文件[ 注:run-parts参数表示,执行后面目录中的所有可执行文件。 ]
   
   
   
   
   本例每两小时执行一次,注册脚本的路径,使用绝对路径:
   0 */2 * * * /usr/beifenmysql/mysqlback.sh
   
   
3,要注意的问题
   有时候会发现到了定时时间,定时任务没有任务,可能有以下原因:
   a,执行shell文件的权限不足:chmod a+x mysqlback.sh
   b,重启crontab: service crond restart