在Linux作業系統上同步備份資料到Google Cloud Storage- 以Mac電腦為例
在Linux作業系統上同步備份資料到 Google Cloud Storage- 以Mac電腦為例

在Linux作業系統上同步備份資料到Google Cloud Storage- 以Mac電腦為例

同步備份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 產品和服務互動的工具和程式庫。

用於與 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備份我們的本機資料後,如果想要進階設定同步排程備份,需要以下幾個準備:

  1. rsync
  2. crontab
  3. *記錄執行同步debug訊息的log檔
  4. Cloud SDK

log檔可以依照個人需求決定要不要新增,筆者建議最好保留,以便備份失敗時可以追查問題。Cloud SDK我們本來在上一步已經說明了安裝方法,所以上下的兩步,是你必須完成的。
rsync

rsync是一個使用於網路同步工作的工具,在linux系統中,你可以透過指令安裝它,如果再Mac作業系統裡面,內建就已經具有rsync工具,想要更新它可以使用homebrew這個工具來實現。
crontab

crontab是Mac OS的排程程式,我們可以透過以下步驟完成GCS檔案備份:

  1. 設定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的值區檢查你的檔案有沒有更新成功喔!)

從GCS的值區裡面refresh檢查檔案有沒有備份成功。

結語

最後,如果您有大規模的系統備份需求,或是有精細、複雜的系統設定,Cloud Ace提供客製化的專案開發服務,提供企業專業的雲端服務解決方案;想要進一步瞭解GCP,請找Google的最佳夥伴Cloud Ace,我們雲端下次見!

這張圖片的 alt 屬性值為空,它的檔案名稱為 commentus.png

Chao Joshua

為Cloud Ace解決方案架構師。熟悉GCP雲端服務,並著力於大數據分析方法及數據管道研究。提供企業雲端架構諮詢與技術支援。

Leave a Reply