一只不甘沦为码农的程序猿

MySQL 定时备份

2019-03-23  本文已影响0人  zorkelvll

ZERO

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

一、背景

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

二、操作

#!/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
#每天凌晨2点执行备份脚本
0 2 * * * /root/scripts/baksql.sh
crontab baksql.cron

crontab -l  #查看定时任务
imagepngimagepng
上一篇 下一篇

猜你喜欢

热点阅读