定时自动备份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