头图:https://cdn.naraku.cn/imgs/Linux-COS-0.jpg

摘要:利用腾讯云官方工具COSCMD实现定时备份数据库到COS

配置COSCMD

COSCMD是腾讯云官方的命令行工具,可通过简单的命令行指令实现对对象的批量上传、下载、删除等操作。

  • 安装COSCMD
  1. $ pip install coscmd
  2. $ coscmd -h # 测试是否安装成功
  • root目录下创建配置文件.cos.conf,并写入配置
    • secret_id:密钥中的SecretId
    • secret_key:密钥中的SecretKey
    • bucket:存储桶名称
    • region:存储桶所在地域
  1. [common]
  2. secret_id = <Your_SecretID> # 修改为自己的SecretId
  3. secret_key = <Your_SecretKey> # 修改为自己的SecretKey
  4. bucket = <Your_Bucket_Name> # 修改为存储桶名称
  5. region = <Your_Bucket_Region> # 修改为存储桶所在地域
  6. max_thread = 5
  7. part_size = 1
  8. retry = 5
  9. timeout = 60
  10. schema = https
  11. verify = md5
  12. anonymous = False
  • 测试上传
  1. $ coscmd upload <localpath> <cospath>
  2. # 例如这里将/root/目录下的1.txt文件上传到COS的根目录下
  3. $ coscmd upload /root/1.txt /

编写脚本

  • 编写脚本Backup2COS.sh
    • 执行时将数据库导出到/root/目录
    • 然后上传到COS的/backup/目录
    • 将执行结果写入到log.txt,且若执行成功时将本地SQL备份文件删除
  1. # 获取当前时间戳
  2. SQLFile=`date +%Y%m%d_%s`.sql
  3. # 添加环境变量,不然可能出现coscmd Not Found错误
  4. source /etc/profile
  5. # 备份指定数据库
  6. mysqldump -uroot -proot typecho > /root/$SQLFile
  7. # 上传到COS
  8. /usr/local/bin/coscmd upload /root/$SQLFile /backup/
  9. # 将执行结果写入日志
  10. if [ $? -eq 0 ]
  11. then
  12. echo "[+] Succeed: " $SQLFile >> /root/log.txt
  13. rm $SQLFile
  14. else
  15. echo "[-] Failed: " $SQLFile >> /root/log.txt
  16. fi
  • 编写完后执行脚本测试一下
  1. $ chmod 755 Backup2COS.sh # 赋权
  2. $ bash Backup2COS.sh # 测试

定时执行

  1. $ crontab -e
  2. 0 2 * * * /root/Backup2COS.sh

参考