rcloneでGoogle Driveにファイルをバックアップする方法
ここにある方法を使うと、Google DriveのAPIキーをサーバに保存することになります。不特定多数の利用者がアクセスできる環境で用いないことをお勧めします。
2023年4月に若干修正
Google Driveなど、著名なオンラインストレージに、コマンドラインでファイルを保存できるrcloneの使い方です。
さくらインターネットなどでも利用可能でした。このページでは、Google Driveへのファイルのバックアップ(コピー)を説明します。
まず準備。
cd mkdir ~/bin && cd ~/bin
で、
/binディレクトリを作りましょう。
uname uname -m
で、OSとCPUを確認し、
で、照合します。
https://github.com/ncw/rclone/releases/
で、当該ファイルのURLのzipをコピーします。
さくらの場合は、おそらくこれ。
https://github.com/ncw/rclone/releases/download/v1.44/rclone-v1.44-freebsd-amd64.zip
これをwget
して、unzip
します。unzip
すると、ディレクトリができてきますので、rcloneだけ、取り出します。
/bin/rclone
でアクセスできるようにしたらいいと思います。
vi ~/.cshrc alias rclone ~/bin/rclone source ~/.cshrc
設定
パスを通したのち、
rclone config
で、以下のように設定を行います。空欄になっているのは、何も入力せずにエンターです。name
は、任意なのですが、ここではremote
とします。
n) New remote name> remote Storage> drive client_id> client_secret> scope> 1 root_folder_id> service_account_file> Use auto config? y/n> n
Use auto configで、y
にすると、ローカル環境の場合は、ブラウザでセットアップをしてくれるのですが、レンサバなどでは、起動できるブラウザがないため、コンフィグレーションが止まってしまいます。ので、n
を選びます。すると、超長いURLを示されるので、ブラウザでアクセスし、承認しコードを取得して貼り付けます。
場合によると、ここで、以下のような流れになる場合があります。
For this to work, you will need rclone available on a machine that has a web browser available. For more help and alternate methods see: https://rclone.org/remote_setup/ Execute the following on the machine with the web browser (same rclone version recommended): rclone authorize "drive" "*****************" Then paste the result.
こうなったら、サーバから一旦離れて、ブラウザが使えるローカルで、rcloneを実施します。
macOSだったら、
brew install rclone
あたりでrcloneをインストールし、上記コマンドを叩いたら、Googleに連れて行かれて、許可を出せます。
もうすこしだけコンフィグレーションが続きます。
Configure this as a team drive? y/n> n y/e/d> y e/d/q> q
q
で終わったら、
rclone ls remote:
で動作確認します。うまくいくと、Google Driveのファイルの一覧を取得できます。
Google Driveへのバックアップ(コピー)
rclone copy target remote:
でtargetをremoteに複製します。ディレクトリを指定する場合は、こんなかんじ。
rclone copy target remote:dirname
なお、crontab
で走らせる時には、
/home/USERNAME/bin/rclone copy target remote:
というように、フルパス書かないとダメなので、要注意です。
rcloneのコマンド類は、Rcloneのサイトで確認できます。オンラインストレージのファイルの削除なんかもできますよ。
以上!