MySQL定时备份

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  #查看定时任务
  • 七牛云上查看定时备份存在的文件:

imagepng

  • 下载之后可执行解压命令进行解压: gunzip pipe-blog.20190126020001.sql.gz
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值