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自動發佈