头图:https://cdn.naraku.cn/imgs/Linux-COS-0.jpg
摘要:利用腾讯云官方工具COSCMD实现定时备份数据库到COS
配置COSCMD
COSCMD是腾讯云官方的命令行工具,可通过简单的命令行指令实现对对象的批量上传、下载、删除等操作。
- 安装COSCMD
 
$ pip install coscmd$ coscmd -h # 测试是否安装成功
- 在
root目录下创建配置文件.cos.conf,并写入配置secret_id:密钥中的SecretIdsecret_key:密钥中的SecretKeybucket:存储桶名称region:存储桶所在地域
 
[common]secret_id = <Your_SecretID> # 修改为自己的SecretIdsecret_key = <Your_SecretKey> # 修改为自己的SecretKeybucket = <Your_Bucket_Name> # 修改为存储桶名称region = <Your_Bucket_Region> # 修改为存储桶所在地域max_thread = 5part_size = 1retry = 5timeout = 60schema = httpsverify = md5anonymous = 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 ]thenecho "[+] Succeed: " $SQLFile >> /root/log.txtrm $SQLFileelseecho "[-] Failed: " $SQLFile >> /root/log.txtfi
- 编写完后执行脚本测试一下
 
$ chmod 755 Backup2COS.sh # 赋权$ bash Backup2COS.sh # 测试
定时执行
- 利用Crontab设置定时任务即可,这里配置每天凌晨2点执行一次脚本。其它频率可使用工具:在线crontab表达式执行时间计算
 
$ crontab -e0 2 * * * /root/Backup2COS.sh
