2020年7月份时,Github 挂了。是的,你没有听错,背靠微软,坐拥 azure 的 Github 挂了。最近还看到近几年大火的 Docker 也开始限制 Docker 商业版及 Docker 的其它服务(像Docker Hub)对特定国家和公司的使用。这些都体现了数据备份的重要性,虽然上面的事件对咱们小小我的影响不是很大,但覆巢之下,安有完卵。早点掌握数据备份的方法才能从容应对将来突发的“意外”。本文将介绍在 ECS 上搭建类 Github 服务 Gogs, 而且按期备份 ECS 上数据到 OSS上,有条件的能够再将 OSS上的数据备份到本身的群辉 NAS 上。html
“All in Cloud”的时代已经到来。对于公司而言,维护机房的成本过高,因此购买像阿里这样的云服务器就比较灵活且成本可控;而对于我的而言,拥有一台云服务器(能够是阿里云,也能够是自搭的服务器【带公网IP】),在任何机器,任何环境下都拥有同一套本身折腾的环境那也太方便了。下面就来介绍在云上进行开发中数据备份的那点事。git
为何要搭建 Gogs,由于 Github 也会挂,并且任何人也没法保证它不会受某国的贸易管制影响。
Gogs 是一款极易搭建的 Git 服务,核心功能和 Github,Gitlab同样,但比两者更加轻量级。项目使用的 MIT 受权协议,能够无任何条件的无偿使用。它有以下优势:github
这里使用 Docker 对其进行安装部署,docker-compose.yml文件以下:docker
version: '3' services: gogs: image: gogs/gogs ports: - 10022:22 - 10080:3000 volumes: - ./data/:/data
经过下方命令启动服务:数据库
docker stack deploy -c docker-compose.yml gogs
这样基本就搭建好一个初步的 Git 服务了,经过 IP:10080 就能够访问。固然第一次登录须要进行一些设置。这里能够选择 SQLite 做为存储数据库,在服务器起来后,其容器的内存才 47M ,而单独启动一个 MySql 容器,其内存占到 371M。这已经足够证实 Gogs 的轻量级。bash
当咱们将不少的代码以及服务放在云上进行运行时,若是服务器被黑或者不当心误删了数据,此时备份数据可让咱们下降损失。服务器数据备份的方法有不少种,好比服务器
其实第二种是最理想的状况,本身整个树莓派,定时同步备份,方便快捷。这里介绍一下第三种方式。前提是你得开通OSS服务,而且建立了Bucket为ws-bakup以及OSS的accessKey(myAccessKeyID:myAccessKeySecret)。微信
# 获取二进制ossutil64文件,并置于/usr/bin/目录下 wget http://gosspublic.alicdn.com/ossutil/1.6.18/ossutil64 -O /usr/local/bin/ossutil64 # 给二进制文件添加执行权限 chmod 755 /usr/local/bin/ossutil64 # 配置ossutil64 ossutil64 config
使用默认的配置文件位置 ~/.ossutilconfig工具
[Credentials] language=CH endpoint=https://oss-cn-shanghai-internal.aliyuncs.com accessKeyID=myAccessKeyID accessKeySecret=myAccessKeySecret
脚本阿里云
#! /bin/bash day=`date +"%Y%m%d"` tarname='ali-ws' echo "ecs_backup_oss: "${day} # 打包压缩 tar -czvPf /var/backups/ws/${tarname}-${day}.tar.gz \ /path/to/gogs \ > /dev/null # 备份上传 cp /var/backups/ws/${tarname}-${day}.tar.gz /var/backups/ws/${tarname}.tar.gz ossutil64 -f cp /var/backups/ws/${tarname}.tar.gz oss://ws-bakup # 清理以前的打包文件 find /var/backups/ws/ -mtime +4 -name "*.tar.gz" -exec rm -rf {} \;
# 天天凌晨一点备份数据到OSS 0 1 * * * sh /root/cron/ws_bakup.sh >> /var/backups/ws/cron.log
操做流程以下:
这样整个云上开发的数据备份流程就整完了。
若是该文章对您产生了帮助,或者您对技术文章感兴趣,能够关注微信公众号: 技术茶话会, 可以第一时间收到相关的技术文章,谢谢!
本篇文章由一文多发平台ArtiPub自动发布