通过定时任务实现每天0点整备份数据,并保存最近30天的备份,过期自动删除。
第一步新建 my_dump.cnf 配置文件
my_dump.cnf配置文件用于储存数据库账号密码,在此以root为例,内容如下
[mysqldump] #备份用户 user=root #备份用户密码 password=root
第二部新建脚本文件
内容如下:
#!/bin/bash DB_NAME='demo1' #要备份的数据库 BACKUP_DIR='/data/backup/mysqldata/' # 备份保存目录 CURRENT_TIME=`date +%Y%m%d%H%M` FILEPATH=$BACKUP_DIR$DB_NAME'_'$CURRENT_TIME'.sql.gz' echo '开始导出数据库...' #defaults-extra-file=/root/my_dump.cnf 第一步的配置文件路径 mysqldump --defaults-extra-file=/root/my_dump.cnf $DB_NAME | gzip > $FILEPATH #删除30天前的配置文件 find ${BACKUP_DIR} -mtime +30 -name "${DB_NAME}_*.sql.gz" -exec rm -f {} \; echo '导出成功,文件名为: '$FILEPATH
第三步添加定时任务
执行命令:crontab -e
写入以下内容:
0 0 * * * /data/crontab/database_backup.sh #每天0点0分备份数据库
至此数据库自动备份已配置完成!
注意事项
确认cron任务是启动状态,以Centos7 为例 输入 systemctl status crond 显示绿色状态
输入crontab -l 确认你输入的内容已保存