手里维护了一些小网站,网站跑在一台最低配的轻量应用服务器上,数据库是自建的MySQL。网站虽小,但是备份数据,也是个刚需。主要是MySQL的数据库备份以及一些本地文件的备份。一直想找一个现成的简单、轻量的解决方案,能够把指定目录或者文件定时自动上传到COS里面备份,但却一直没有找到,所以就只好自己动手了。
整体思路很简单,写一个shell脚本,利用crontab定时运行,功能就两个:1、打包指定的目录,上传到COS;2、导出MySQL数据,上传到COS。另外在COS里面设置过期规则,比如30天后删除旧得备份。
下面,简单记录相关步骤:
注意:这里的操作步骤只是一个参考,具体备份的文件夹路径、备份的数据库等内容可根据实际情况调整。
1、安装coscli:
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
#!/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
设置备份脚本每天运行一次:
0 0 \* \* \* /root/backup.sh > /dev/null 2>$1 &
5、 最后在存储桶中,设置“基础配置/生命周期”中,设置备份过期时间。(这里设置,30天后,前缀为back的文件将会自动删除)
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有