Linux下MySQL定时自动完整备份(mysqldump+crontab)
文章目录
[隐藏]
- 一、前言
- 1、本文目标
- 2、环境信息
- 二、备份
- 三、定时任务
- 1、定时执行MySQL完整备份
- 2、定时清理7天以前的备份
- 四、备注
- 1、crontab命令示例
- 2、本文参考
一、前言
1、本文目标
- 实现数据库全量备份
- 实现定时执行备份
- 实现定时清理7天之前的备份
2、环境信息
二、备份
- 目录准备
mkdir /mysql mkdir /mysql/backup mkdir /mysql/backup/scripts mkdir /mysql/backup/files mkdir /mysql/backup/logs
- 备份脚本
新建脚本
vi /mysql/backup/scripts/backup_full.sh
脚本内容
#!/bin/bash #备份目录 BACKUP_ROOT=/mysql/backup BACKUP_FILEDIR=$BACKUP_ROOT/files BACKUP_LOGDIR=$BACKUP_ROOT/logs #当前日期 DATE=$(date +%Y%m%d) ######备份###### #查询所有数据库 #-uroot -p123456表示使用root账号执行命令,且root账号的密码为:123456 DATABASES=$(mysql -uroot -p123456 -e "show databases" | grep -Ev "Database|sys|information_schema") #DATABASES=$(mysql -uroot -p123456 -e "SELECT SCHEMA_NAME FROM information_schema.SCHEMATA WHERE SCHEMA_NAME NOT IN ('sys','mysql','information_schema','performance_schema');" | grep -v "SCHEMA_NAME","ken.io") echo $DATABASES #循环数据库进行备份 for db in $DATABASES do echo echo ----------$BACKUP_FILEDIR/${db}_$DATE.sql.gz BEGIN---------- mysqldump -uroot [email protected] --default-character-set=utf8 -q --lock-all-tables --flush-logs -E -R --triggers -B ${db} | gzip > $BACKUP_FILEDIR/${db}_$DATE.sql.gz echo ----------$BACKUP_FILEDIR/${db}_$DATE.sql.gz COMPLETE---------- echo done echo "done"
备份测试&验证
#执行备份脚本 sh /mysql/backup/scripts/backup_full.sh #查看备份文件 ll /mysql/backup/files -h #解压指定文件({file}自己替换成备份的文件) gunzip /mysql/backup/files/{file}
三、定时任务
- 安装crontab
yum install -y crontab
1、定时执行MySQL完整备份
- 创建定时备份任务
#添加定时任务 crontab -e #每天凌晨3点执行 00 3 * * * sh /mysql/backup/scripts/backup_full.sh #查看定时任务 crontab -l
2、定时清理7天以前的备份
- 创建文件清理脚本
#创建脚本文件 vi /mysql/backup/scripts/backup_full_clean.sh #写入以下内容 #!/bin/bash find /mysql/backup/files -mtime +7 -name "*.gz" -exec rm -rf {} ;
创建定时清理任务
#添加定时任务 crontab -e #每天凌晨1点执行 00 1 * * * sh /mysql/backup/scripts/backup_full_clean.sh #查看定时任务 crontab -l
四、备注
1、crontab命令示例
2、本文参考
- https://blog.csdn.net/zmcyu/article/details/75353245
- http://linuxtools-rst.readthedocs.io/zh_CN/latest/tool/crontab.html
本文由 ken.io 创作,采用CC BY 3.0 CN协议 进行许可。 可自由转载、引用、甚至修改,但需署名作者且注明出处。
原文出处:ken -> https://ken.io/note/mysql-full-backup-linux-mysqldump-crontab
本站所发布的一切资源仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如果侵犯你的利益,请发送邮箱到 [email protected],我们会很快的为您处理。