头图:https://cdn.naraku.cn/imgs/Linux-COS-0.jpg
摘要:利用腾讯云官方工具COSCMD实现定时备份数据库到COS
配置COSCMD
COSCMD是腾讯云官方的命令行工具,可通过简单的命令行指令实现对对象的批量上传、下载、删除等操作。
- 安装COSCMD
$ pip install coscmd
$ coscmd -h # 测试是否安装成功
- 在
root
目录下创建配置文件.cos.conf
,并写入配置secret_id
:密钥中的SecretId
secret_key
:密钥中的SecretKey
bucket
:存储桶名称region
:存储桶所在地域
[common]
secret_id = <Your_SecretID> # 修改为自己的SecretId
secret_key = <Your_SecretKey> # 修改为自己的SecretKey
bucket = <Your_Bucket_Name> # 修改为存储桶名称
region = <Your_Bucket_Region> # 修改为存储桶所在地域
max_thread = 5
part_size = 1
retry = 5
timeout = 60
schema = https
verify = md5
anonymous = False
- 测试上传
$ coscmd upload <localpath> <cospath>
# 例如这里将/root/目录下的1.txt文件上传到COS的根目录下
$ coscmd upload /root/1.txt /
编写脚本
- 编写脚本
Backup2COS.sh
- 执行时将数据库导出到
/root/
目录 - 然后上传到COS的
/backup/
目录 - 将执行结果写入到
log.txt
,且若执行成功时将本地SQL备份文件删除
- 执行时将数据库导出到
# 获取当前时间戳
SQLFile=`date +%Y%m%d_%s`.sql
# 添加环境变量,不然可能出现coscmd Not Found错误
source /etc/profile
# 备份指定数据库
mysqldump -uroot -proot typecho > /root/$SQLFile
# 上传到COS
/usr/local/bin/coscmd upload /root/$SQLFile /backup/
# 将执行结果写入日志
if [ $? -eq 0 ]
then
echo "[+] Succeed: " $SQLFile >> /root/log.txt
rm $SQLFile
else
echo "[-] Failed: " $SQLFile >> /root/log.txt
fi
- 编写完后执行脚本测试一下
$ chmod 755 Backup2COS.sh # 赋权
$ bash Backup2COS.sh # 测试
定时执行
- 利用Crontab设置定时任务即可,这里配置每天凌晨2点执行一次脚本。其它频率可使用工具:在线crontab表达式执行时间计算
$ crontab -e
0 2 * * * /root/Backup2COS.sh