rcloneの使い方
- dropboxがお金を払わないとまともに使えないので、rclone(マルチクラウドストレージクライアント)でgoogle driveに代替できる
- osによる挙動の違い
- macOSではfuseが不安定なので、Googleが提供するGUIクライアントを用いたほうがいい
- linuxでは安定して動作する
- 事前にGCPからOAuthのDesktop AppのクライアントIDとクライアントシークレットを取得しておく必要がある
インストール
macOS
$ brew install rclone
ubuntu, debian
$ sudo apt install rclone
GoogleDriveを使用した際の初期設定
rclone confign/r/c/s/q> nを入力(新規リモートを作成)name> <what you want>を入力Storage> driveを入力client_id>で OAuthのクライアントIDを入力(空白でも可だがレートリミットが厳しくなる)client_secret>で OAuthのクライアントシークレットを入力scope> 1を入力service_account_file>でenter- ブラウザ認証の質問(
y/n)- ローカル環境の場合:
yを入力してブラウザで認証 - リモートサーバーの場合:
nを入力し、表示されるURLをローカルのブラウザで開いてトークンをコピペして認証
- ローカル環境の場合:
- Shared Drive(Team Drive)の質問(
y/n): 通常はnを入力
各種コマンド
ls
$ rclone ls <name>:
copy
$ rclone copy <file> <name>:
mount
$ rclone mount <name>: <path-to-mount>
unmount
$ fusermount -uz <path-to-mount>
mount(gdrive)
$ rclone mount <name>: <path-to-mount> \
--vfs-cache-mode full \
--vfs-cache-max-size 10G \
--vfs-cache-max-age 24h
systemdサービスとして登録する
- 起動時に自動でmountするにはsystemdサービスとして登録する
/etc/systemd/system/rclone-<name>.serviceに以下を配置する
[Unit]
Description=rclone mount for <name>
After=network-online.target
Wants=network-online.target
[Service]
Type=notify
User=<user>
Group=<user>
ExecStart=/usr/bin/rclone mount <name>: <path-to-mount> \
--config=/home/<user>/.config/rclone/rclone.conf \
--vfs-cache-mode full \
--vfs-cache-max-size 10G \
--vfs-cache-max-age 24h
ExecStop=/bin/fusermount -uz <path-to-mount>
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.target
- 有効化と起動
$ sudo systemctl daemon-reload
$ sudo systemctl enable rclone-<name>
$ sudo systemctl start rclone-<name>