Google Driveで自動バックアップ rcloneの使い方

Google Driveで自動バックアップ【rcloneで実現】 サーバー

「Google Driveにバックアップを自動で保存したい・・・」
「マニュアル通りにしてもGdriveが動かない・・・」
「新規でGdriveがGoogle Driveと連携できなくなった・・・」

このように思う方は、この記事が参考になります。
記事を参考にすれば、バックアップファイルをGoogle Driveに自動で保存できるようになります。

実際、私自身がGdirveをいきなり使えなくなりました。
過去に設定したものは、いまだに動き続けています。
しかし、新規でGdriveがGoogle Driveと連携できなくなったのです。

ちょうど良い機会だということで、rcloneを新規に利用することにしました。
その過程をまとめて、記事にしました。

本記事の内容

  • rcloneのインストール
  • rcloneの設定
  • rcloneによるファイルコピー

では、まずはインストールから説明していきます。

rcloneのインストール

インストール

# aptitude install rclone
The following NEW packages will be installed:
  rclone
0 packages upgraded, 1 newly installed, 0 to remove and 111 not upgraded.
Need to get 2,743 kB of archives. After unpacking 10.9 MB will be used.
Get: 1 http://ftp.jp.debian.org/debian stretch/main amd64 rclone amd64 1.35-1+b3 [2,743 kB]
Fetched 2,743 kB in 0s (2,996 kB/s)
Selecting previously unselected package rclone.
(Reading database ... 51649 files and directories currently installed.)
Preparing to unpack .../rclone_1.35-1+b3_amd64.deb ...
Unpacking rclone (1.35-1+b3) ...
Setting up rclone (1.35-1+b3) ...
Processing triggers for man-db (2.7.6.1-2) ...

aptitudeでもapt-getでもどちらでもOKです。
簡単ですね。

インストールの確認

# rclone version
2020/05/19 10:43:06 Config file "/user/.rclone.conf" not found - using defaults
rclone v1.35-DEV

このコマンドが動けば、インストールは成功しています。
バージョン確認のためのコマンドです。

rcloneの設定

設定

# rclone config
No remotes found - make a new one
n) New remote
s) Set configuration password
q) Quit config
n/s/q> n

新しくリモート設定を登録します。
「n」を入力してEnter。

name> google-backup

リモート設定の名称ですね。
適当に管理しやすい名称を入力してください。
「〇〇〇」を入力してEnter。

Type of storage to configure.
Choose a number from below, or type in your own value
1 / Amazon Drive
   \ "amazon cloud drive"
2 / Amazon S3 (also Dreamhost, Ceph, Minio)
   \ "s3"
3 / Backblaze B2
   \ "b2"
4 / Dropbox
   \ "dropbox"
5 / Encrypt/Decrypt a remote
   \ "crypt"
6 / Google Cloud Storage (this is not Google Drive)
   \ "google cloud storage"
7 / Google Drive
   \ "drive"
8 / Hubic
   \ "hubic"
9 / Local Disk
   \ "local"
10 / Microsoft OneDrive
   \ "onedrive"
11 / Openstack Swift (Rackspace Cloud Files, Memset Memstore, OVH)
   \ "swift"
12 / Yandex Disk
   \ "yandex"
Storage> 7

ストレージのタイプを選択です。
Google Driveを利用するため、「7」を入力してEnter。

Google Application Client Id - leave blank normally.
client_id>
Google Application Client Secret - leave blank normally.
client_secret>

ここは何も入力せずにEnter、EnterでOKです。

Remote config
Use auto config?
* Say Y if not sure
* Say N if you are working on a remote or headless machine or Y didn't work
y) Yes
n) No
y/n> n

「ブラウザを自動的に起動させてよいかどうかを確認している」と思っても問題ありません。
この記事では、サーバーが対象であるため「n」を入力してEnter。
サーバーのバックアップファイルをGoogle Driveに転送するパターンなら、「n」を選択。

If your browser doesn't open automatically go to the following link: https://accounts.google.com/o/oauth2/auth?client_id=aaaaaaaaaaaaaa.apps.googleusercontent.com&redirect_uri=urn%3Aietf%3Awg%3Aoauth%3A2.0%3Aoob&response_type=code&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive&state=aaaaaaaaaaaaaa
Log in and authorize rclone for access

上記のようなURL(aaaaaaaaaaaaaaはランダムな文字列です)が表示されます。
このURLにブラウザでアクセスします。
ブラウザは、ターミナルを起動しているPCでも、別のPCでも大丈夫です。

複数アカウントがある場合は、次のアカウント選択画面が表示されます。

Google Driveとrcloneの連携アカウント選択

アカウントを選択したら、次の画面が表示。
rcloneによるGoogle Driveへのアクセスの許可確認画面ですね。

Google Driveとrcloneの連携認証

「Allow」ボタンをクリック。
認証コードが記載された画面が表示されます。

Google Driveとrcloneの連携認証コード

認証コードをコピーします。
アイコンをクリックすれば、選択状態になってコピーしやすいです。

認証コードをコピーしたら、ターミナルに戻ります。

Enter verification code> ランダムな文字列

コピーした認証コードをは入力してEnter。

--------------------
[google-backup]
client_id =
client_secret =
token = {"access_token":"●●●","token_type":"Bearer","refresh_token":"●●●","expiry":"2020-05-19T12:28:24.70694885+09:00"}
--------------------
y) Yes this is OK
e) Edit this remote
d) Delete this remote
y/e/d> y

設定の確認です。
問題なければ、「y」を入力してEnter。

Current remotes:

Name                 Type
====                 ====
google-backup        drive

e) Edit existing remote
n) New remote
d) Delete remote
s) Set configuration password
q) Quit config
e/n/d/s/q> q

設定完了です。
とりあえず、一旦rcloneを終わらせるため「q」を入力してEnter。

設定確認(Google Driveとの接続確認)

次のコマンドにより、登録したリモート設定を確認できます。

rclone lsd リモート設定の名称:/

Google Drive上のフォルダ一覧(マイドライブ直下)が表示されます。
これが表示されれば、設定は成功しています。

もしフォルダがなければ、これを機会にGoogle Drive上で作成しておきましょう。
今回は、「BACKUP」というフォルダを作成します。

# rclone lsd google-backup:
          -1 2020-05-19 03:50:02        -1 BACKUP

こんな感じで作成したフォルダが出てきます。

rcloneによるファイルコピー

ファイルコピー

rcloneを使えば、次のことが可能です。

  • サーバーからGoogl Driveにファイルをコピー
  • Google Driveからサーバーにファイルをコピー

バックアップには、「 サーバーからGoogl Driveにファイルをコピー」で対応します。
これを実現するのは、以下のコマンド。

rclone copy target remote:

targetは、サーバー上にあるバックアップしたいファイルです。
remote:は、リモート設定+Google Drive上のコピー先フォルダの組み合わせです。

具体的な情報は以下。

サーバーのバックアップファイル /tmp/self_development.tar.gz
コピー先リモート設定 google-backup
コピー先フォルダ BACKUP

コピーする前に、コピー前の状況を確認しておきます。

# rclone ls google-backup:/BACKUP/

何も表示されないです。
Google Drive上で見てもファイルが一つも存在していませんね。

では、コピーします。

# rclone copy /tmp/self_development.tar.gz google-backup:/BACKUP/
2020/05/19 13:22:34 Google drive root 'BACKUP': Waiting for checks to finish
2020/05/19 13:22:34 Google drive root 'BACKUP': Waiting for transfers to finish
2020/05/19 13:22:46
Transferred:   123.801 MBytes (9.343 MBytes/s)
Errors:                 0
Checks:                 0
Transferred:            1
Elapsed time:       13.2s

成功したようです。
それでは、確認してみます。

# rclone ls google-backup:/BACKUP/
129815210 self_development.tar.gz

ちゃんとファイルが存在しているようですね。
一応、Google Drive上も確認します。

大丈夫ですね。
対象ファイルが、コピーされているのが確認できます。

コピーの自動設定

cronで設定します。
1点だけ注意があります。

rcloneコマンドをフルパスで書かないといけません。

# which rclone
/usr/bin/rclone

上記をそのまま信用せず、各自の環境でwhichコマンドで確認するべきです。
次の記述をcronに設定すれば、自動バックアップの完成です。

/usr/bin/rclone copy /tmp/self_development.tar.gz google-backup:/BACKUP/ 

まとめ

rcloneによるGoogle Driveへのファイルコピーを説明してきました。
この場合のファイルコピーは、ほぼバックアップファイルの転送がメインです。

インストールは、簡単でした。
設定は、ターミナルとブラウザを行き来するところで、少し困惑するかもしれません。
でも、慣れれば何てことはありません。

コピーも簡単でした。
今回は、詳しく説明していませんが、もちろん逆も可能です。

逆とは、Google Driveからサーバーへのファイルコピーです。
これは、ファイルをリカバーするときに役立つでしょう。

タイトルとURLをコピーしました