自动备份本地数据到腾讯云COS
我的需求
手里维护了一些小网站,网站跑在一台家庭内网的PVE的虚拟机上,通过内网穿透访问。网站虽小,但是备份数据,也是个刚需。主要是网站代码、相关配置文件、MySQL的数据以及一些本地文件的备份。一直想找一个现成的简单、轻量的解决方案,能够把指定目录或者文件定时自动上传到COS里面备份,但却一直没有找到,所以就只好自己动手了。
思路介绍
1、使用腾讯云的COSCMD 工具将本地要备份的文件上传到COS里面。
2、写一个shell脚本,利用crontab定时运行,功能就两个:打包指定的目录,上传到COS;导出MySQL数据,上传到COS。另外在COS里面设置过期规则,比如30天后删除旧得备份。
具体操作
下面,简单记录相关步骤:
执行 pip
命令进行安装
yum -y install python3 python3-pip
pip3 install coscmd
安装成功之后,用户可以通过 -v
或者 --version
命令查看当前的版本信息。
安装完成后,执行以下命令进行更新:
pip3 install coscmd -U
生成配置文件
在腾讯云创建一个存储桶,准备一个子账号,分配权限,记录子账号的SecretId和SecretKey;
然后创建配置文件,COSCMD 工具在运行前会首先从配置文件中读取运行时所需的必要信息,COSCMD 会默认从 ~/.cos.conf
中读取配置项
一个配置文件的示例如下所示:
[common]
secret_id = AKIDA6wUmImTMzvXZNbGLCgtusZ2E8mG****
secret_key = TghWBCyf5LIyTcXCoBdw1oRpytWk****
bucket = configure-bucket-1250000000
region = ap-chengdu
max_thread = 5
part_size = 1
retry = 5
timeout = 60
schema = https
verify = md5
anonymous = False
编写脚本
我本地的示例脚本backup_cos.sh,可以按照需求修改,
#!/bin/sh
datename=`date +%Y%m%d`
web_bak(){
cd /home/wwwroot/
tar zcf blog_${datename}.tar.gz blog/
tar zcf intro_${datename}.tar.gz intro/
tar zcf test_${datename}.tar.gz test/
/usr/local/bin/coscmd upload blog_${datename}.tar.gz web/
/usr/local/bin/coscmd upload intro_${datename}.tar.gz web/
/usr/local/bin/coscmd upload test_${datename}.tar.gz web/
rm blog_${datename}.tar.gz
rm intro_${datename}.tar.gz
rm test_${datename}.tar.gz
}
sql_bak(){
mysqldump -uroot -pxxxxxxxx --all-databases > /data/backup/blog_${datename}.sql
/usr/local/bin/coscmd upload /data/backup/blog_${datename}.sql sql/
rm /data/backup/blog_${datename}.sql
}
conf_bak(){
scp root@172.16.149.4:/data/frp_ssh/frpc.ini /data/backup/frpc_${datename}.ini
scp root@172.16.149.4:/data/frp_ssh/frpc /data/backup/frpc_${datename}
/usr/local/bin/coscmd upload /data/backup/frpc_${datename}.ini conf/
/usr/local/bin/coscmd upload /data/backup/frpc_${datename} conf/
rm /data/backup/frpc_${datename}.ini
rm /data/backup/frpc_${datename}
}
nginx_bak(){
cd /usr/local/nginx/conf/
tar zcf nginx_conf_${datename}.tar.gz vhost/
/usr/local/bin/coscmd upload nginx_conf_${datename}.tar.gz nginx/
rm /usr/local/nginx/conf/nginx_conf_${datename}.tar.gz
}
web_bak
sql_bak
conf_bak
nginx_bak
创建定时任务
1 9 * * * /data/backup/backup_cos.sh
创建COS的生命周期
最后在存储桶中,设置“基础配置/生命周期”中,设置备份过期时间。(这里设置,30天后文件将会自动删除)
|| 版权声明
作者:废权
链接:https://blog.yjscloud.com/archives/391
声明:如无特别声明本文即为原创文章仅代表个人观点,版权归《废权的博客》所有,欢迎转载,转载请保留原文链接。
作者:废权
链接:https://blog.yjscloud.com/archives/391
声明:如无特别声明本文即为原创文章仅代表个人观点,版权归《废权的博客》所有,欢迎转载,转载请保留原文链接。
THE END
1
二维码

自动备份本地数据到腾讯云COS
我的需求
手里维护了一些小网站,网站跑在一台家庭内网的PVE的虚拟机上,通过内网穿透访问。网站虽小,但是备份数据,也是个刚需。主要是网站代码、相关……

共有 0 条评论