前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >自动备份本地文件、数据库到COS中

自动备份本地文件、数据库到COS中

原创
作者头像
一介程序员
修改2022-03-05 21:16:08
2.2K0
修改2022-03-05 21:16:08
举报

我的需求

手里维护了一些小网站,网站跑在一台最低配的轻量应用服务器上,数据库是自建的MySQL。网站虽小,但是备份数据,也是个刚需。主要是MySQL的数据库备份以及一些本地文件的备份。一直想找一个现成的简单、轻量的解决方案,能够把指定目录或者文件定时自动上传到COS里面备份,但却一直没有找到,所以就只好自己动手了。

思路介绍

整体思路很简单,写一个shell脚本,利用crontab定时运行,功能就两个:1、打包指定的目录,上传到COS;2、导出MySQL数据,上传到COS。另外在COS里面设置过期规则,比如30天后删除旧得备份。

具体操作

下面,简单记录相关步骤:

注意:这里的操作步骤只是一个参考,具体备份的文件夹路径、备份的数据库等内容可根据实际情况调整。

1、安装coscli:

代码语言:shell
复制
wget https://github.com/tencentyun/coscli/releases/download/v0.10.2-beta/coscli-linux
mv coscli-linux /usr/bin/coscli
chmod 755 /usr/bin/coscli

这里如果无法下载,或者下载缓慢,你懂的。

2、 准备一个存储桶,准备一个子账号,分配权限,记录子账号的SecretId和SecretKey,运行coscli,首次运行coscli,根据提示填写相关信息,其中的session token不填。

3、新建一个脚本backup.sh,这里假设我们备份的目录为/etc/my.cnf.d/要备份的数据库名为mysql

代码语言:shell
复制
#!/bin/bash

cd /root/

tar -czvf my.cnf.d.tar.gz /etc/my.cnf.d/ 
mysqldump mysql > mysql.sql
tar -czf mysql.sql.tar.gz mysql.sql

coscli cp my.cnf.d.tar.gz cos://backupcos/back/`date '+%Y%m%d'`/my.cnf.d.tar.gz
coscli cp mysql.sql.tar.gz cos://backupcos/back/`date '+%Y%m%d'`/mysql.sql.tar.gz

rm -f my.cnf.d.tar.gz mysql.sql.tar.gz mysql.sql

4、chmod a+x backup.sh给脚本添加运行权限,运行crontab -e设置备份脚本每天运行一次:

代码语言:txt
复制
0 0 \* \* \* /root/backup.sh > /dev/null 2>$1 &

5、 最后在存储桶中,设置“基础配置/生命周期”中,设置备份过期时间。(这里设置,30天后,前缀为back的文件将会自动删除)

image-20220305204654132.png
image-20220305204654132.png

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 我的需求
  • 思路介绍
  • 具体操作
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档