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],我们会很快的为您处理。