相信大家對Mega這個免空已相當的認識
目前欣賞它的原因是:

  • 第一 開放原始碼
  • 第二 速度還算快
  • 第三 有SDK可以使用

因為本人的主機空間過小(窮小孩)T_T
所以極需一個backup storage server
一台便宜的storage 50GB一個月要價5$
而申請一個free acount的Mega就會有50GB的空間
可以說使用Mega不僅備份空間綽綽有餘又可以省錢何樂不為

接下來就要告訴大家如何使用API來實現自動備份
其實Mega有提供SDK給人使用
但是它是用C++開發,還要讀許多Documentation…
所以我就去gitHub上面找是否有人提供好用的API
果真~找到了一位老兄用go寫的一個Mega Client的工具
使用後真的相當好用
藉此分享給大家

第一步
下載已經編譯好的二進制執行檔 在gitHub上有連結
截圖如下


第二步
複製到預設的bin目錄下 舉例如下

cp megacmd /usr/local/bin  

在使用者目錄下新增一個.megacmd.json

{
    "User" : "MEGA_USERNAME",
    "Password" : "MEGA_PASSWORD",
    "DownloadWorkers" : 4,
    "UploadWorkers" : 4,
    "SkipSameSize" : true,
    "Verbose" : 1
}  

裡面寫入Mega的使用者帳號及密碼 並輸入megacmd做測試看是否可以執行


第三步
寫個自動化腳本
簡單給個範例 若你是用mysql的db備份

# !/bin/bash
# (1) setting variable
DATABASE="$1" USER=XXXXX PASS=XXXXX FILE=$DATABASE-`date +"%Y%m%d"`.sql
# (2) mysql database backup (dump)
mysqldump --opt --user=${USER} --password=${PASS} ${DATABASE} > ${FILE} echo "${FILE} mysql already dump"
# (3) gzip the mysql database dump file
gzip $FILE
# (4) show the result
echo "${FILE}.gz was created:" ls -l ${FILE}.gz
# (5) upload to Mega
megacmd mkdir mega:/$DATABASE/`date +"%Y"`/`date +"%m"`/ megacmd put ${FILE}.gz mega:/$DATABASE/`date +"%Y"`/`date +"%m"`/
# (6) delete gz
unalias rm 2> /dev/null rm ${FILE}.gz 2> /dev/null  

第四步
放到crontab讓他定時執行 舉例如下

# backup to mega 設置每天0點0分備份
0 0 * * * cd 腳本目錄 && sh 腳本檔名.sh 資料庫名稱  

簡單的幾個步驟幫你省下不少的摳摳喔~