定时自动备份mysql数据库

定时执行某个任务,即所谓的每x时间(秒、分钟、小时等)或者每隔x时间做什么,通常我们称之为cron(计划任务)。cron并不是linux独有。要想在linux下定时执行某个任务,可以使用linux自带的cron程序。
要想学习linux下的cron,可以查看这篇博文linux上配置计划任务(cron和crontab)。当然,并不需要熟记计划任务的规则,知道大概的用法就行,因为具体规则可以通过在线cron表达式生成器生成。
下面是我用来定时备份mysql数据库的执行过程:

新建备份文件并赋予可以执行的权限

    mkdir -p /home/mysql_backup/          #创建目录,用来保存数据库备份文件
    touch /home/mysql_backup/mysql_backup.sh   #创建定时备份的脚本程序
    sudo chmod 551 /home/mysql_backup/mysql_backup.sh   #给脚本允许执行的权限

编辑/home/mysql_backup/mysql_backup.sh,在命令行输入

    vim /home/mysql_backup/mysql_backup.sh

写入以下内容

    backupdir=/home/mysql_backup
    time=` date +%Y_%m_%d_%H_%M_%S `
    db_user=root
    db_pass=123456
    mysqldump --all-databases -u $db_user -p$db_pass | gzip > $backupdir/$time.sql.gz

编辑crontab,在命令行输入:

    crontab -e

在最后一行加入定时规则(即每x时间执行、每隔x时间执行),下面输入的规则表示每天0点执行

0 0 0 1/1 * ?  /home/mysql_backup/mysql_backup.sh

重启crontab,在命令行输入:

    service crond restart
原文地址:https://www.cnblogs.com/foolishnoob/p/5421462.html