2019年7月15日月曜日

Raspberry PiのファイルをGoogleドライブにバックアップする

Raspberry Piにあるファイルを、万が一のときのためにGoogleドライブにバックアップできるようにする。Raspberry PiからGoogleドライブにアクセスするにはrcloneを使う。rcloneはファイルをGoogleドライブやDropboxなどのクラウドサービスと同期できるコマンドラインプログラム。


環境


Raspbian Stretch。



rcloneのインストール


rcloneインストール用のスクリプトが用意されているのでそれを使う。インストールされたバージョンはv1.48.0。



rcloneでGoogleドライブを利用する設定


rclone configコマンドで各種サービス用の設定ができる。


Googleドライブ用の設定についてはGoogle driveに詳細な説明がある。以下、rclone configの設定内容。

新規リモート(利用するサービス)の設定作成
n) New remote
s) Set configuration password
q) Quit config
n/s/q> n

新規リモート名の設定(任意)
name> gdrive

設定するサービス(12 / Google Drive)を選択
Storage> 12

client_idとclient_secretはブランクでOK
client_id>
client_secret>

アクセス権をフルアクセス(1 / Full access all files, excluding Application Data Folder)に設定
scope> 1

root_folder_idとservice_account_fileはブランクでOK
root_folder_id>
service_account_file>

advanced設定はしない
Edit advanced config? (y/n)
y/n> n

リモートの設定を自動でしない(ターミナルで設定しているのでnを選択)
Remote config
Use auto config?
* Say Y if not sure
* Say N if you are working on a remote or headless machine
y/n> n

表示されるリンクをブラウザで開いて、rcloneによるアクセスを許可するとコードが表示されるのでコピーしてペーストする
Log in and authorize rclone for access
Enter verification code> *****

チームドライブとして設定しない
Configure this as a team drive?
y/n> n

設定した情報が表示されるのでOKならy
y) Yes this is OK
e) Edit this remote
d) Delete this remote
y/e/d> y

設定の終了
e/n/d/r/c/s/q> q


rcloneによるGoogleドライブの操作


rcloneでGoogleドライブのファイル一覧を表示したり、Raspberry PiにあるファイルをGoogleドライブにアップロードできる。いくつか操作を試してみる。

Googleドライブトップ階層のディレクトリ一覧を表示


Googleドライブの全ファイル一覧を表示


Googleドライブにtestディレクトリを作成


ファイルをGoogleドライブに作成したディレクトリにコピー


Googleドライブのディレクトリtestにあるファイルをダウンロード



Raspberry PiのディレクトリとGoogleドライブのディレクトリを同期させる


Raspberry PiのディレクトリtestとGoogleドライブのディレクトリtestを同期させてみる。

Raspberry Pi内ディレクトリtestのファイル一覧を確認。


Googleドライブ内ディレクトリtestのファイル一覧を確認。


まずは--dry-runオプションで実際に同期させずに動作を確認する。同期させたときに予期せずにファイルが削除されることがありえるので、--dry-runオプションではじめに確認する方が安心。


まだファイルは同期されていない。


実際に同期させる。


ファイルが同期された。



Googleドライブを使用するときの制限


Google driveによると、Googleドライブにはレートリミットがあって、rcloneで使用するときには1秒間に2ファイルぐらいしか転送できない。

Drive has quite a lot of rate limiting. This causes rclone to be limited to transferring about 2 files per second only.

ファイル数が多い場合はアーカイブにするなどすれば良いかも。


cloneでバックアップジョブの設定


自動で定期的にGoogleドライブにバックアップするように、Raspberry Piにcloneジョブを追加する。cronで毎日2時に同期バックアップを実行するには、crontabに「00 2    * * * pi     rclone sync test gdrive:test」を追記する。



0 件のコメント:

コメントを投稿