Mysql数据库定时备份就是这么简单

Mysql数据库定时备份

使用命令

  • mysqldump Mysql自带备份命令
  • crontab 定时任务工具

步骤

  1. 使用mysqldump命令编写sh脚本
  2. 将脚本添加进crontab定时执行

shell备份脚本

如果存在今日的备份,备份失败
如果不存在备份,如果有10天前的备份就删除,备份今日sql并将sql压缩打包,删除打包之前的sql
注意

  1. 赋予shell脚本执行权限 chmod+x ./backupmysql.sh
  2. 需要source /etc/profile才可以执行环境变量中的命令,如果还不行可以换成命令的绝对路径
  3. $(date +%Y%m%d --date='10 days ago') 10表示10天前的日期
  4. 由于Mysql高版本不支持命令行写入密码,所以要在my.cnf中如下配置,这样在使用mysqldump时就不需要设置密码了
    1. 打开配置文件
      vim /etc/mysql/my.cnf
    2. 写入配置
      [mysqldump]
      user=your_backup_user_name
      password=your_backup_password
      

完整backupmysql.sh文件

#!/bin/bash

BackupPath=/data/backup/      #脚本目录
mysql_bk_dir=$BackupPath/mysql_bk_dir  #备份文件目录
LogFile=$BackupPath/backup.log   #日志文件路径
dbName=name  #数据库名称
source /etc/profile #引入环境变量
NewFile="$mysql_bk_dir"/$(date +%Y%m%d)"$dbName".tgz
DumpFile="$mysql_bk_dir"/$(date +%Y%m%d)"$dbName".sql
OldFile="$mysql_bk_dir"/$(date +%Y%m%d --date='10 days ago')"$dbName".tgz
if [ -f $NewFile ]
then
   echo "[$NewFile]The Backup File is exists!" >> $LogFile
else
    cd $Mysql_bk_dir
    mysqldump "$dbName"> $DumpFile
    tar czf $NewFile $i$(date +%Y%m%d)"$dbName".sql >> $LogFile 2>&1
    echo "[$NewFile]Backup Success!" >> $LogFile
    if [ ! -f $OldFile];then
		echo "OldFileFile is exists"
	else
		rm -rf $OldFile
	fi
    rm -rf $DumpFile
fi

crontab配置

  1. 打开配置
    crontab -e
  2. 新建任务(每日凌晨1:30执行)
    30 1 * * * /data/backup/backupmysql.sh
  3. 查看任务
    crontab -l

更多crontab配置教程点此前往查看

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值