雲上開發之資料備份

2021-10-16 17:23:59 字數 2855 閱讀 4258

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證書 如何在零 修改的前提下實現站點加密訪問,涉及產品...