OSS备份mysql数据
下载OSS命令行工具ossutil到本地系统
wget https://gosspublic.alicdn.com/ossutil/1.7.15/ossutil64
chmod +x ossutil64 # 授权
sudo mv ossutil64 /bin/ # 移动到Path或者创建软连接ln -s /usr/local/src/ossutil64/ossutil64 /usr/local/bin/ossutil64
其他功能参考官方文档https://www.alibabacloud.com/help/zh/object-storage-service/latest/6f7f72#concept-cnr-3d4-vdb
编写shell脚本
#!/bin/sh
# 备份文件临时目录
mysql_dump_path=/var/dbbackup/
# oss配置
oss_endpoint="Endpoint"
oss_bucket="bucket名称"
oss_accesskeyid="AccessKeyId"
oss_accesskeysecret="AccessKeySecret"
backup_name=`date +%Y%m%d%H%M%S`
cd ${mysql_dump_path}
# 使用 mysqldump 备份整个数据库到临时文件夹中
# --ignore-table忽略掉表,需要带上database.
docker exec root-mysql-1 sh -c 'mysqldump -uroot -p"$MYSQL_ROOT_PASSWORD" --all-databases' > ${backup_name}.sql
# 打包/pack
tar zcf ${backup_name}.tar.gz ${backup_name}.sql
rm -f ${backup_name}.sql
# 备份到OSS
ossutil64 cp ${backup_name}.tar.gz oss://${oss_bucket}/mysql/backup/${backup_name}.tar.gz -f -e ${oss_endpoint} -i ${oss_accesskeyid} -k ${oss_accesskeysecret}
rm -f ${backup_name}.tar.gz
echo "备份完成"
sudo chmod +x /var/dbbackup/dbbackup.sh
加入cron计划任务
vim /etc/crontab
0 2 * * * root /var/dbbackup/dbbackup.sh # 每天凌晨两点执行一次
systemctl reload crond.service # 重新载入配置