Red Hat Enterprise Linux 9 のバックアップを Rcloneで Google Drive に同期する

conoha Linux
記事内に広告が含まれています。
スポンサーリンク

ConoHa の VPS に RHEL9 をインストールしていろいろ設定してきましたが、今回は遠隔バックアップの設定を入れていこうと思います。

既に MariaDB の設定の際に、ローカルの自動バックアップは行っていましたが、何かあった時のために Google Drive にも自動でコピーを置くようにします。

Rclone のインストール

EPEL リポジトリにある Rclone は、バージョンが 1.57.0(2021年11月)で結構古いものでした。

事前に調べたところ古いバージョンだと Google の認証まわりで不具合があるらしいので、新しいものを使った方が良さそうです。

公式サイトを見ると、最新バージョンは 1.66.0(2024年5月現在)でしたので、今回はこれを使用していきます。

Rclone downloads
Download rclone binaries for your OS.

インストールガイドによると Intel/AMD(64 Bit)の Zip ファイルをダウンロードして、バイナリファイルを適切な場所(/usr/bin/)に配置すれば良さそうですが、面倒なので今回は公式サイトの RPM からインストールしました。

Google Drive の設定

Rcolone の設定に入る前に、先に Google Drive でバックアップデータの保存先を作成しておきます。

このフォルダが Rclone でアクセスできる、ルートフォルダになります。

作成したフォルダに移動し、フォルダの ID を取得しておきます。

※URL で folders/ 以降の文字列が、後述する Rclone の root_folder_id の値になります。

Google Cloud の設定

続いて Rclone から操作する Google Drive API の準備をしていきます。

Google Cloud でプロジェクトの作成

Google Cloud Platform
Google Cloud Platform lets you build, deploy, and scale applications, websites, and services on the same infrastructure ...

Google Cloud にログインします。

「API とサービス」のページに移動し、「プロジェクトを作成」を選択してください。

プロジェクト名を入力(ここでは「Rclone Backup」としました)して、作成ボタンを押します。

Google Drive API の有効化

API とサービスを有効にすると、API ライブラリを選択する画面に遷移します。

API ライブラリの中から、Google Drive API を選択します。

Google Drive API を有効にするか尋ねられますので、「有効にする」を選択してください。

Google Drive API が有効になりました。

OAuth 同意画面の設定

認証情報を作成のボタンを押したくなるところですが、左のメニューから「OAuth 同意画面」を開きます。

OAuth 同意画面が開きますので、User Type を「外部」にして作成ボタンをクリックします。

アプリ登録の編集画面が表示されますので、任意のアプリ名を入力します。

また、ユーザーサポートメールとデベロッパーの連絡先情報には、Google アカウントで使用しているメールアドレスを入力します。

保存して次へ進むと、スコープの設定画面になりますので「スコープの追加または削除」をクリックします。

選択したスコープの更新画面になりますので、フィルタに「drive」と入れて絞り込みます。

範囲が「.../auth/docs」、「.../auth/drive」、「.../auth/drive.metadata.readonly」の 3 つのスコープにチェックを入れ、更新ボタンを押してください。

機密性の高いスコープに「.../auth/docs」が、制限付きのスコープに「.../auth/drive」と「.../auth/drive.metadata.readonly」が追加されたことを確認して、「保存して次へ」をクリックします。

テストユーザーの画面に進みますが、ユーザーは追加せずに次へ進みます。

OAuth 同意画面の概要が表示されますので、間違いがなければダッシュボードに戻ります。

OAuth 同意画面のダッシュボードに戻ったら、公開ステータスの「アプリを公開」ボタンをクリックして、本番環境にプッシュします。

公開ステータスが「テスト」から「本番環境」に変化しました。

確認ステータスで「確認が必要」となっていますが、一般公開しないので無視して大丈夫です。

認証情報を作成

続いて、認証情報の設定をしていきます。

左のメニューで「認証情報」を開き、画面上部の「+ 認証情報を作成」から「OAuth クライアント ID」を選択します。

OAuth クライアント ID の作成画面になりますので、アプリケーションの種類から「デスクトップアプリ」を選択し、任意の名前(ここでは Rclone)を付け、作成ボタンを押します。

OAuth クライアントを作成しましたというダイアログが表示されました。

クライアント ID と、クライアント シークレットが Rclone の設定の際に必要になりますので、この画面を表示したまま Rclone 側の設定を行っていきます。

Rclone のセットアップ

rclone config を実行して、遠隔バックアップの設定をしていきます。

新しく設定を入れていくので「n」で New remote を指定してください。

リモートのサービスを指定

続いて、リモートに対して任意の名前(ここでは GoogleDrive)を付け、サービスの種類(Google Drive の場合は 17)を指定します。

※サービスの番号(17)ではなく、drive と指定しても大丈夫です。

次に、サービスごとのオプションを指定していきます。

先ほど取得したクライアント ID を貼り付けます。

同様に、先ほど取得したクライアント シークレットを貼り付けます。

※ここまで入力したら、Google Cloud 側のダイアログは閉じても大丈夫です。

続いてアクセス権の設定になります。

バックアップファイルを書き込むので、フルアクセス(1)を入力します。

Rclone からアクセス可能な Google Drive のフォルダを指定したいので、Advanced config で Yes(y)を応答します。

root_folder_id には、前述した Google Drive のフォルダ ID を入力します。

それ以外の設定は全て空エンターで、デフォルト値を設定します。

最後に、再び Edit advanced config? と尋ねられますので、今度は No(n)で先に進みます。