8
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

お題は不問!Qiita Engineer Festa 2024で記事投稿!
Qiita Engineer Festa20242024年7月17日まで開催中!

さくらVPSのUbuntu環境でGoogleDriveの共有ドライブをマウントする

Last updated at Posted at 2024-06-17

背景

VPSサーバで何かしらのデータのバックアップを取っておきたいときに、バックアップを同一サーバ内に保存しておくでも良いが、手違いやアクシデントなどでサーバ自体のデータが消失したときのために、Ubuntu上からGoogle Driveにアクセスして保存しておけたら便利かと思ったため。また、サーバ上だとバックアップデータの取得のためにSFTP接続などが必要になるが、Google Driveだとアクセスも容易なため。

環境

OS: Ubuntu 22.04 LTS

設定手順

Google CloudでOAuthクライアントIDを作成する

OAuthの認証情報が必要になりますのでGoogle Cloudにアクセスして作成します
https://console.cloud.google.com/

手順は下記の通りです

プロジェクトがない場合はまず最初にプロジェクトを作成

Google Drive APIで検索して有効化

ss1.png

APIとサービス → OAuth同意画面の作成

ss2.png

Internalを選ぶと組織内部のみの認証ができます

APIとサービス → 認証情報の作成

ss3.png
種類はデスクトップアプリを選択

上記でできあがったクライアントIDとクライアントシークレットを使用します。

Ubuntuでの設定

google-drive-ocamlfuseをUbuntuにインストール

sudo add-apt-repository ppa:alessandro-strada/ppa
sudo apt-get update
sudo apt-get install google-drive-ocamlfuse

認証を行う

この状態で

google-drive-ocamlfuse

とコマンドを打つと以下のエラーが出ます

/bin/sh: 1: xdg-open: not found
/bin/sh: 1: firefox: not found
/bin/sh: 1: google-chrome: not found
/bin/sh: 1: chromium-browser: not found

google-drive-ocamlfuseはGUIのブラウザで認証を求めるものであるため、GUI環境のない場合には上記のようなエラーが出ます。

そこでCUI環境のみの場合にはheadlessで認証を行います。

google-drive-ocamlfuse -headless -id クライアントID -secret クライアントシークレット

クライアントIDとクライアントシークレットには最初の手順で作成したものを入れてください。コマンドを打つと以下が表示されます

Please, open the following URL in a web browser: https://accounts.google.com/o/oauth2/auth?client_id=hogehoge&redirect_uri=http%3A%2F%2F127.0.0.1%3A8080%2Foauth2callback&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive&response_type=code&access_type=offline&approval_prompt=force
Please enter the verification code:

Please, open the following URL in a web browser:
で示されたURLをブラウザで開きます。そしてを認証で許可を行うと以下のようなページにリダイレクトされます

http://127.0.0.1:8080/oauth2callback?code=hogehoge&scope=https://www.googleapis.com/auth/drive

上記のcodeのパラメータhogehogeをコピーしてverification codeに入力すると認証完了です

Google Driveのマウント

マイドライブをマウントしたい場合には特に何も設定せず以下のようにコマンドを実行

mkdir GoogleDrive
google-drive-ocamlfuse ./GoogleDrive

今回は共有ドライブをマウントしたいので~/.gdfuse/default/configを編集する必要があります。
ファイル内のteam_drive_idにIDを設定、IDの調べ方はドライブのルートURLのhogehoge部分です

https://drive.google.com/drive/folders/hogehoge
~/.gdfuse/default/config
team_drive_id=hogehoge

上記を変更した後にドライブをマウントすると共有ドライブをマウントすることができます。(設定が反映されなかった場合には設定後に再度認証を行うと反映されたりしました。)

ドライブをアンマウントしたいときは

fusermount -u ~/GoogleDrive

うまくマウントできない場合などのキャッシュクリア

google-drive-ocamlfuse -cc

最後に

サービスとして自動でバックアップを取ってくれるもの以外では適切なバックアップ方法を模索する必要があると感じました。他にも良い方法がないかを検討していけたらと思っています。

以上です。

参考

8
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?