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 會得到「This app has not been verified yet by Google in order to use Google Sign In.」錯誤,小蛙查到網路上的解法在這邊,不過還沒有時間去測試(之前正常連結過的也還能繼續使用),有空的時候會再把使用方式記錄下來,連結在此

下載套件 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 本機要同步的路徑。

更換帳號

天下沒有不散的筵席,到了 2022 年 06 月 20 日的今天,小蛙登入 Google 雲端硬碟時發現旁邊有一個紅色的字很刺眼,仔細一看原來是校友提供的儲存空間剩下 2 GB,原本用來做增量備份以及外連圖的空間都瞬間大減 … 想到記下來部落格都是使用 Google 相簿外連,要搬的話還要一個一個換連結 … 藍瘦香菇 …

查資料跟看上面的文章努力回想起 gdrive 怎麼使用,有了頭緒之後很快就可以解決了,gdrive 設定檔放在主帳號家目錄下的 .gdrive 資料夾下,cd ~/.gdrive 就可以看到 token_v2.json,保險起見先把這個檔案移到別的地方放,如果失敗了還可以蓋回去。

上面有提到 gdrive about 可以看到目前使用狀況,因為上面把 token_v2.json 移走了,gdrive 找不到驗證檔就會跳出上面「設定並驗證」章節裡的畫面,簡單來說就是重新做一次這動作,就可以連結到別的帳號。

更換帳號要注意的是,如果跟小蛙一樣設定自動跑的話,由於換帳號了,原本設定同步到的資料夾 ID 就沒辦法使用了 (如果有設定共享不確定會不會不影響),因為小蛙的沒設定共享,所以要再去把備份腳本的同步資料夾 ID 一併改掉。

幸好更換沒有很困難 … 祝大家一切順利!

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *