gdirve 讓你在 Linux 文字介面也能好好使用 Google Drive

Google Drive 又叫做 Google 雲端硬碟,只要有 Gmail 帳號就可以得到 15 GB 的空間,大部份的人多透過瀏覽器開啟並管理 Google 雲端硬碟,有些人可能是安裝桌面版的工具來使用,這邊小蛙要記錄文字介面下的 Linux 要怎麼使用 Google Drive。

會出現這篇是因為之前主機的備份,小蛙都是放在 Dropbox 上面,後來空間越來越不足,Google Drive 只提供 15 GB 容量,久了也還是很快就會不夠了,不過搭上這篇可以讓空間占用少一點,後來終於以校友身份申請到 G Suite 教育版的帳號,有無限儲存空間呢!

G Suite 教育版與 GSuit 基本版差異
https://support.google.com/a/answer/139019?hl=zh-Hant

既然已經拿到無限空間了,就來讓小蛙的 Ubuntu 主機可以定期自動備份到 Google Drive 上吧!

下載套件 gdrive

套件連結

進入 gdrive 的 github 之後,可以看到 Download 部份有很多不同環境下的版本可以下載,要依自己的版本來下載對應的檔案,小蛙下載的是 Linux 64 bit 的版本。

在 shell 環境中下,並且給予執行的權限

wget -O gdrive https://docs.google.com/uc?id=0B3X9GlR6EmbnQ0FtZmJJUXEyRTA&export=download
chmod +x gdrive

設定並驗證

直接執行 ./gdrive about,Google Drive 會給出一個連結,點選連結後開啟認證頁面,要求輸入驗證碼才能夠繼續使用

把最後得到的驗證碼複製下來,貼到剛剛的 shell 畫面中

上面過程都完成的話,會看到自己的資訊以及空間使用狀況。

設定成全域可執行

如果希望在任何目錄下都可以直接透過 gdrive 而不用指定完整路徑,只要把檔案複製到 /usr/sbin/ 下就可以囉!

mv gdrive /usr/sbin/

上傳檔案

gdrive 的指令跟功能非常多種,小蛙這邊只記錄自己用到過的指令,gdrive 在 github 上示範了很多使用情境,需要更多指令的用法跟細節可以到這邊去看看喔!

在命令列下 gdrive help 可以看到所有指令,如同上表。 上傳檔案的方式很簡單,只要下 gdrive upload 檔案名稱

上傳完成後會顯示一組 hash id,對於 Google Drive 來說是以這組 id 來辨別哪一個檔案,而不是以我們認知的檔名來辨別檔案,看下圖就可以理解了,小蛙再上傳一次一模一樣的檔案

看見了嗎?兩次上傳一模一樣的檔案,給出來的 id 卻是不同的,而透過瀏覽器開啟 Google Drive 會發現,裡面有兩個相同檔名的檔案。

如果透過瀏覽器上傳 Google Drive 遇到相同檔名預設會進行覆蓋上一個,但是也可以透過點選單獨另存檔案,讓 Google Drive 不要進行覆蓋,但是覆蓋也不要緊,因為 Google Drive 原本就有進行版本控制,不小心覆蓋了再回復原始版本即可。

在要修改的檔案上點選滑鼠右鍵,選擇管理版本,就可以看到所有檔案的儲存版本,並且自己選擇要下載或是永久保存該版本的檔案。

下載檔案

下載檔案也同樣非常簡單,前面提到過對 Google Drive 來說,識別檔案的不是檔名而是 id,所以這邊我們要先知道要下載的檔案對應的 id 是什麼

同步上傳

小蛙用這個功能來上傳主機每天備份的檔案,這些檔案儲存在固定資料夾內,因此,使用 gdrive 同步上傳實際上在做的事情就是比對 Google Drive 中有沒有哪些是本機資料夾內沒有的檔案,如果有的話就把該檔案上傳到 Google Drive。但是要做到這件事情必須要先看該資料夾是否在同步清單中。

同步上傳的指令是 gdrive sync upload 要同步的資料夾路徑 上面得到的 id,更多用法可以使用 gdrive help gdrive sync upload,就可以看到詳細的參數設定。

如果 gdrive sync list 裡面沒有包含要上傳的資料夾的話,只要先 gdrive mkdir 資料夾名稱,就可以建立一個資料夾,把這個 id 複製下來

接著只要透過 gdrive sync upload 本機資料夾 雲端資料夾id 就可以開始上傳了!

同步下載

跟同步上傳恰恰相反,比對本地資料夾有沒有缺少 Google Drive 上存在的檔案,如果有的話就進行下載。指令為 gdrive sync download 雲端資料夾ID 本機要同步的路徑。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。