ラズパイを運用していると、大事なファイルが結構できてきます。定期的にバックアップを取って安心したいところです。バックアップ先を外付けハードとかにしてもいいですが、家が火事で燃えたりするとそのドライブも結局消失することになってしまうので、何かしらのクラウドサービスを使うのが良いかと思います。ここではrcloneを使ってgoogle drive にファイルをバックアップしてみたいと思います。
Google Driveの事前設定
google driveにrcloneからアクセスするためには、何かしらの認証が必要となります。普段使っているPCからrcloneを使う場合には特に何も気にせずに自分のアカウントの認証を使えば良いですが、スタンドアローンのPCから使う場合には、サービスアカウントを使用するのが良いと思います。
サービスアカウントを作成する
このリンクを参考にサービスアカウントを作成し、そのサービスアカウントの鍵も生成します。鍵はjsonで以下のような内容になっています。
{
"type": "***",
"project_id": "***",
"private_key_id": "***",
"private_key": "***",
"client_email": "***",
"client_id": "***",
"auth_uri": "***",
"token_uri": "***",
"auth_provider_x509_cert_url": "***",
"client_x509_cert_url": "***",
"universe_domain": "***"
}
この内、client_id
とclient_email
は後ほど使用するので、メモりましょう。
また、rcloneでの設定に必要となってくるので、このfileをラズパイに送っておきます。
Google Driveの設定
先程作成したサービスアカウントがアクセスできるdriveを作成していきます。
まずは普通にフォルダを作成します。そして先程作成したサービスアカウントにそのフォルダに対する権限を付与します。権限の付与にはサービスアカウントのemailアドレスが必要なので、先程メモった値をコピーし、共有設定を行います。共有設定がわからない人はここを参考にしてみてください。
共有設定したフォルダをダブルクリックして開いたあとのURLは以下のような形になっています。
https://drive.google.com/drive/u/0/folders/
この<folder id>に該当する場所は後ほど利用するのでメモっておきます。
また、rcloneの動作テストで使いたいので、空のgoogle docとフォルダを作成しておきます。
rcloneのインストール
ラズパイにrcloneをインストールしていきます。ここを参考にしながら作業をすすめます。
sudo -v ; curl https://rclone.org/install.sh | sudo bash
Now run “rclone config” for setup. Check https://rclone.org/docs/ for more details.
という出力が最後に出て来るので設定をしていきます。
rclone config
次のような設定をしました。設定の方法自体はこのリンクが参考になります。
- New remote
- name -> gdrive
- option storage -> 18 (google drive)
- client_id -> empty
- client_secrets -> empty
- scope -> 1 (full access)
- service account file -> 事前設定したサービスアカウントの鍵
- Edit advance config -> y
- root_folder_id -> 事前に作成したフォルダのID
- ほかはデフォルトのまま
- Configure this as a Shared Drive (Team Drive)? -> n
- Keep this “gdrive” remote? -> y
- Quit config
rcloneの動作確認
フォルダの一覧を取得してみます。以下のコマンドを実行します。
rclone lsd gdrive:
事前に作成した共有のフォルダの下に作成したフォルダが表示されます。
試しにbackup
という名前のフォルダを作成してみます。
rclone mkdir gdrive:backup
rclone lsd gdrive:
先程作成したbackup
フォルダが表示されます。
適当なファイルをrcloneでuploadしてみます。
rclone <path to local file> gdrive:backup</path>
Google driveで確認するとさきほどのファイルがアップロードされています。
コメント