MySQL 定时备份

作者: zorkelvll | 来源:发表于2019-03-23 16:21 被阅读0次

ZERO

    持续更新 请关注:https://zorkelvll.cn/blogs/zorkelvll/articles/2019/01/27/1548594908494

一、背景

对于一般的开发者而言,既无力使用昂贵的阿里云等云厂商提供数据库服务,但又常常苦于无法保证自己在服务器上安装的mysql数据库中数据的安全性或者有效备份特性,因此我们将利用crontab实现定时备份个人mysql数据库文件到个人的七牛云存储中去!PS:仅对于开发者个人网站中一些不重要的数据,而各位公司内部的数据谨慎存储到第三方云存储空间!

二、操作

  • 确认crontab服务开启:service crond status

  • 确认系统中gzip以及mysqldump命令可正常执行

  • 安装七牛云命令行工具qshell:

    cd ~/app & wget http://devtools.qiniu.com/qshell-v2.3.6.zip

    yum install unzip

    unzip -o -d ./qshell qshell-v2.3.6.zip

    cd qshell & mv qshell_linux_x64 qshell

    vim ~/.bashrc 添加配置项:export PATH=$PATH:/root/app/qshell

    source ~/.bashrc

  • 注册七牛云账号并完成实名认证,官方注册

  • 使用qshell配置七牛云账号:qshell account AK SK 其中的AK和SK为注册七牛云账号的key 并在控台新建一个存储空间backup

  • 安装开启命令自动补全:yum install bash-completion -y

  • 创建存放脚本以及数据库dump备份文件存储目录地址:mkdir ~/data/backup/sql & mkdir ~/scripts

  • 编辑备份脚本文件~/scripts/baksql.sh,内容如下:

#!/bin/sh
# mysql data backup script
#
# use mysqldump --help,get more detail.

dbname=yourdatabasename
user=mysqluser
password=mysqlpassword
bakDir=~/data/backup/sql
logFile=~/data/backup/pipe-blog-bak.log
datetime=`date +%Y%m%d%H%M%S`
keepDay=7

echo "-------------------------------------------" >> $logFile
echo $(date +"%y-%m-%d %H:%M:%S") >> $logFile
echo "--------------------------" >> $logFile
cd $bakDir
bakFile=$dbname.$datetime.sql.gz
mysqldump -u$user -p$password $dbname | gzip > $bakFile
echo "数据库 [$dbname] 备份完成" >> $logFile
echo "$bakDir/$bakFile" >> $logFile
echo "开始上传备份文件至七牛云存储" >> $logFile
/root/app/qshell/qshell rput backup database/$bakFile $bakFile --overwrite | sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g" >> $logFile 2>&1
echo "删除${keepDay}天前的备份文件" >> $logFile
find $bakDir -ctime +$keepDay >> $logFile
find $bakDir -ctime +$keepDay -exec rm -rf {} \;
echo " " >> $logFile
echo " " >> $logFile
  • 将baksql.sh脚本添加到crontab定时器中去执行:

    cd /etc/cron.d

    vim baksql.cron 并添加如下内容

#每天凌晨2点执行备份脚本
0 2 * * * /root/scripts/baksql.sh
crontab baksql.cron

crontab -l  #查看定时任务
  • 七牛云上查看定时备份存在的文件:
imagepngimagepng
  • 下载之后可执行解压命令进行解压: gunzip pipe-blog.20190126020001.sql.gz

相关文章

  • Linux笔记

    Linux定时任务 Mysql备份 Linux+Mysql定时备份 * * * * * user task分 时 ...

  • 实战-MySQL定时增量备份(2)

    阅读本文大约需要 9 分钟 实战-MySQL定时全量备份(1) 实战-MySQL定时增量备份(2) 实战-将MyS...

  • shell自动备份mysql脚本

    作用 定时执行mysql全量备份,并上传到备用服务器。使用mysqldump备份mysql,scp上传文件到备份服...

  • linux mysql 每天定时备份

    功能:mysql 每天定时备份, 并删除7天以前的备份mysql_dumps.sh: 通过linux cron设置...

  • shell 定期备份mysql

    mysql数据库需要每天定时备份,于是写了个脚本,加到crontab里面,每天定时备份,直接上脚本

  • shell定时备份mysql

    在服务器上用shell定时备份mysql 1. 在crontab中加入定时备份任务 20 1 * * * cd /...

  • MySQL定时备份

    1. 新建目录备份目录 # mkdir -p /apps/mysql_backup 2. 新建mysql_back...

  • mysql定时备份

    最近把公司 devops 总算搞起来了,然后把线上的 mysql 数据库定期备份到 oss 上。 中间遇到不少头痛...

  • mysql定时备份

    定时任务设置 3小时备份一次

  • MySQL 定时备份

    ZERO 持续更新 请关注:https://zorkelvll.cn/blogs/zorkelvll/artic...

网友评论

    本文标题:MySQL 定时备份

    本文链接:https://www.haomeiwen.com/subject/qqmsvqtx.html