2023年7月份時,github 掛了。是的,你沒有聽錯,背靠微軟,坐擁 azure 的 github 掛了。最近還看到近幾年大火的 docker 也開始限制 docker 商業版及 docker 的其它服務(像docker hub)對特定國家和公司的使用。這些都體現了資料備份的重要性,雖然上面的事件對我們小小個人影響不是很大,但覆巢之下,安有完卵。早點掌握資料備份的方法才能從容應對未來突發的「意外」。本文將介紹在 ecs 上搭建類 github 服務 gogs, 並且定期備份 ecs 上資料到 oss上,有條件的可以再將 oss上的資料備份到自己的群輝 nas 上。
「all in cloud」的時代已經到來。對於公司而言,維護機房的成本太高,所以購買像阿里這樣的雲伺服器就比較靈活且成本可控;而對於個人而言,擁有一台雲伺服器(可以是阿里雲,也可以是自搭的伺服器【帶公網ip】),在任何機器,任何環境下都擁有同一套自己折騰的環境那也太方便了。下面就來介紹在雲上進行開發中資料備份的那點事。
為什麼要搭建 gogs,因為 github 也會掛,而且任何人也無法保證它不會受某國的**管制影響。
gogs 是一款極易搭建的 git 服務,核心功能和 github,gitlab一樣,但比二者更加輕量級。專案使用的 mit 授權協議,可以無任何條件的免費使用。它有如下優點:
易安裝 二進位製包安裝,同時支援docker
跨平台 go開發,支援全平台
輕量級 廉價的樹莓派即可支援它的執行(2核512m)
這裡使用 docker 對其進行安裝部署,docker-compose.yml檔案如下:
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 的輕量級。
當我們將很多的**以及服務放在雲上進行執行時,如果伺服器被黑或者不小心誤刪了資料,此時備份資料可以讓我們降低損失。伺服器資料備份的方法有很多種,比如
人工定期從伺服器上拷貝檔案,問題是人工成本大,不一定記得住。
自己伺服器通過crontab啟定時任務,通過rsync或者scp進行檔案備份,前提是你得有臺自己伺服器
通過群輝 nas 中 cloud sync 進行定期備份,前提是你得有群輝nas,且 cloud sync只支援oss。
其實第二種是最理想的情況,自己整個樹莓派,定時同步備份,方便快捷。這裡介紹一下第三種方式。前提是你得開通oss服務,並且建立了bucket為ws-bakup以及oss的accesskey(myaccesskeyid:myaccesskeysecret)。
# 獲取二進位制ossutil64檔案,並置於/usr/bin/目錄下
wget -o /usr/local/bin/ossutil64
# 給二進位制檔案新增執行許可權
chmod 755 /usr/local/bin/ossutil64
# 配置ossutil64
ossutil64 config
使用預設的配置檔案位置 ~/.ossutilconfig
[credentials]
language=ch
endpoint=
accesskeyid=myaccesskeyid
accesskeysecret=myaccesskeysecret
指令碼
#! /bin/bash
day=
`date +"%y%m%d"
`tarname=
'ali-ws'
echo
"ecs_backup_oss: "
$# 打包壓縮
tar -czvpf /var/backups/ws/$-$.tar.gz \
/path/to/gogs \
> /dev/null
# 備份上傳
cp /var/backups/ws/$-$.tar.gz /var/backups/ws/$.tar.gz
ossutil64 -f cp /var/backups/ws/$.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
操作流程如下:
登陸群輝nas,開啟 cloud sync
選擇雲**商:阿里雲物件儲存
填寫myaccesskeyid和myaccesskeysecret,並選擇要備份的bucket:ws-bakup
基本配置完成,還可以修改計畫(類似crontab)
這樣整個雲上開發的資料備份流程就整完了。
阿里雲ecs資料遷移至oss
gogs中文文件
gogs原始碼
本篇文章由一文多發平台artipub自動發布
阿里雲上資料統一備份 混合雲備份服務解析
近年來,隨著越來越多的企業從傳統經濟向數字經濟轉型,雲已經漸漸成為資料經濟it新常態。核心業務系統上雲,雲上的業務創新,這些都產生了大量的業務資料,這些資料也成為了企業最重要的資產 資源。任何資料損失都可能對業務帶來嚴重影響,但是勒索病毒,黑客攻擊,人為誤操作,運維失誤,乃至機房災難的威脅隨時可能帶...
PostgreSQL雲上開發實踐
功能 通過postgis外掛程式,可以輕鬆支援2d 3d位址資訊模型,更支援地球不規則球體的偏移量,實現達到國際opengis標準的精確定位。基於sql支援json xml key value等非結構化資料型別,實現另類的not only sql nosql 解決方案 通過全文搜尋,應用將不再需要額...
雲上資料安全
通過本認證課程,你將 了解資料應該從哪些方面進行安全防護,例如 儲存技術 備份和恢復方案 如何安全地傳輸 該選擇哪種加密演算法等。掌握阿里雲平台上資料安全防護的核心技能,包括 如何實現資料的自動異地備份 如何在雲環境下實現加密儲存 如何生成ssl證書 如何在零 修改的前提下實現站點加密訪問,涉及產品...