shell脚本自动备份mysql数据库,并进行云备份

该脚本主要描述了在Linux系统中如何使用ossutil64工具进行一键安装,并配置用于备份MySQL数据库。备份完成后,将备份文件压缩并上传到阿里云的对象存储服务(OSS)。此外,还涉及到了通过crontab设置定时任务进行自动备份。
摘要由CSDN通过智能技术生成

先需要安装ossutil64

这是一键安装脚本(Linux)

sudo -v ; curl https://gosspublic.alicdn.com/ossutil/install.sh | sudo bash

输入accessKey_id

输入accessKey_secret

输入endpoint      #例如:oss-cn-shenzhen.aliyuncs.com

user="root"
 
#备份用户密码
 
password="111111"
 
#mysql连接端口
 
port="3306"
 
mysql_path="/usr/bin/"
 
date=$(date +%Y-%m-%d_%H-%M-%S)
 
del_date=$(date +%Y-%m-%d)
 
#备份路径---需要修改
 
backup_path="/data/backup"
 
backup_log_path="/data/backup/logs"
 
day=0
 
backup_log="/data/backup/logs/mysqldump_backup_${date}.log"
 
# 除了127.0.0.1以外的ip截取 /sbin/ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:"
 
#删除以前2天备份
 
find ${backup_path} -type f -mtime +$day -name "*.tar.gz" -exec rm -rf {} \; > /dev/null 2>&1
 
 
 
for f in `ls $backup_path`;
 
do
 
if [[ $f = ${del_date}_* ]]; then
 
rm -rf $backup_path/$f
 
fi
 
done
 
#建立备份目录
 
if [ ! -e $backup_path/${date} ];then
 
mkdir -p {$backup_path/${date},$backup_log_path}
 
fi
 
#echo "开始备份所有数据库"
 
echo "备份开始,结果查看 $backup_log"
 
echo "==========All databases backups begin==========" >>$backup_log
 
#备份并压缩
 
for dbname in $(mysql -P$port -u$user -p$password -A -e "show databases\G"|grep Database|grep -v schema|grep -v test|awk '{print $2}')
 
do
 
sleep 1
 
mysqldump -P$port -u$user -p$password $dbname > $backup_path/${date}/$dbname.sql
 
if [[ $? == 0 ]];then
 
cd $backup_path/${date}
 
size=$(du $backup_path/${date}/$dbname.sql -sh | awk '{print $1}')
 
echo "备份时间:${date} 备份方式:mysqldump 备份数据库:$dbname($size) 备份状态:成功!" >>$backup_log
 
else
 
cd $backup_path/${date}
 
echo "备份时间:${date} 备份方式:mysqldump 备份数据库:${dbname} 备份状态:失败,请查看日志." >>$backup_log
 
fi
 
done
 
cd $backup_path
 
tar zcpvf mysql_all_databases_$date.tar.gz $date
 
rm -rf $backup_path/$date
 
 
 
du mysql_all_databases_$date.tar.gz -sh | awk '{print "文件:" $2 ",大小:" $1}'
 
echo "==========All databases backups over==========" >>$backup_log

#上传oss
echo "========================正在上传oss进行云备份==============" >>$backup_log
ossutil64 cp $backup_path/mysql_all_databases_$date.tar.gz   oss://bucketName/

echo "备份时间:${date} 备份方式:云备份数据库文件(mysql_all_databases_$date.tar.gz) 备份状态:成功!" >>$backup_log


添加定时任务:crontab -e

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

java-superchen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值