文章段落
同步備份local端的資料到GSC值區(bucket)
今天,我們有大量的歷史資料、資料庫重要資料備份,需要批次建檔時,Cloud Storage就可以作為一個節省開支,並且儲存大量資料的解決方案。今天公司有某上市公司客戶,找到Cloud Ace提供備份大量資料到Cloud Storage的需求,因此,我們設想對方的資料庫架構以及資料特性後,規劃出了完整的資料備份上雲方案,在最符合經濟效益的條件下設計Cloud Storage的專案開發。
以下,我要提供從local端主機備份資料時,若希望一次性備份大量資料到GCS,或是同步自動備份本機資料到GCS bucket上面,可以使用哪些方法,完成自動化備份的操作。(筆者使用的作業系統為Mac OS,本篇文章就以該作業系統的設定當作示範內容。)
設定GCP GCS
首先,在雲端中我們開啟一個專案,如果我們是專案的Admin,那我們預設就可以使用GCS。在導覽列中,我們找到Storage的儲存服務。
建立值區
打開Browser>Create Bucket,我們創建一個新的值區(Bucket)
下載Cloud SDK
引用官網所述:
Cloud SDL是用於與 Google Cloud 產品和服務互動的工具和程式庫。
如果要在我們本地端的作業系統上透過指令去連結雲端的服務,那就必須安裝Cloud SDK與GCP的服務進行互動。
安裝好SDK後,只要依照指令列上面的提示,就可以將預設的使用者、憑證設定完成。在這裡我們就不贅述。接著我們要再回到GCS的服務中,調整GCS授與個別帳號的權限。
授權GCS bucket給SDK使用者
我們在剛才創建的值區中,點進值區>Permission
在上圖中,我把自己的SDK帳戶授權Storage Object Creator權限。
注意一下,開啟了這個功能,我們才能正常使用SDK來備份資料喔!
一次性備份
如果說使用者想要把主機當中的資料一次性的備份到雲端的值區,可以使用gsutil cp指令舉例來說,如果我的主機裡面有個叫做backup的目錄要備份,我可以使用以下指令把我的資,我可以使用以下指令把我的資料夾備份到GCS上面:
gsutil cp -r ~/Desktop/backup gs://joshua-testing
說明:
(1) -r 可以將我的資料夾裡涵蓋的所有目錄跟檔案,遞迴上傳
(2) ~/Desktop/backup 是我要備份的目錄
(3) gs://joshua-testing 是我的目的地,要把你想上傳的值區目的地寫在”//”的後面
按下enter後,就可以坐等檔案完成上傳啦,就這麼簡單!
當然,這只是基礎的備份技巧,通常檔案備份是需要有同步功能的,而且最好是我們讓電腦可以自動完成,不需要我們每天手動下指定完成。那這個動作要如何在linux作業系統中實現呢?由於作者使用的是麥金塔的電腦作業系統,以下就使用Mac內建的排程程式crontab做說明。
進階:排程同步上傳資料
在我們學會如何使用SDK備份我們的本機資料後,如果想要進階設定同步排程備份,需要以下幾個準備:
- rsync
- crontab
- *記錄執行同步debug訊息的log檔
- Cloud SDK
log檔可以依照個人需求決定要不要新增,筆者建議最好保留,以便備份失敗時可以追查問題。Cloud SDK我們本來在上一步已經說明了安裝方法,所以上下的兩步,是你必須完成的。
rsync
rsync是一個使用於網路同步工作的工具,在linux系統中,你可以透過指令安裝它,如果再Mac作業系統裡面,內建就已經具有rsync工具,想要更新它可以使用homebrew這個工具來實現。
crontab
crontab是Mac OS的排程程式,我們可以透過以下步驟完成GCS檔案備份:
- 設定crontab腳本:打開終端機,操作以下指令:
crontab -e
2. 貼上同步備份腳本在crontab
*/1 * * * * /Users/joshuachao/Documents/google-cloud-sdk/bin/gsutil -d rsync -r ~/crontab gs://joshua_testing &>~/sync_test.log
說明: -d 為debug參數 -r 遞迴同步資料夾檔案 &>執行結果的log存入指令路徑
3.儲存腳本檔案
:wq
這個同步腳本,會讓我們本會讓我們本機的資料夾以每分鐘執行一次的頻率,上傳檔案到我指定的GCS值區當中,並且系統會將備份執行的結果,記錄到sync_test.log這個檔案中。
如此一來,我們就能做到簡單的同步自動備份作業(千萬別忘了到GCS的值區檢查你的檔案有沒有更新成功喔!)
結語
最後,如果您有大規模的系統備份需求,或是有精細、複雜的系統設定,Cloud Ace提供客製化的專案開發服務,提供企業專業的雲端服務解決方案;想要進一步瞭解GCP,請找Google的最佳夥伴Cloud Ace,我們雲端下次見!