そりゃそうだよねという単純な話と備忘録です。
そもそもrcloneとは
rsyncをクラウド上のドライブ(GoogleDrive, Onedrive, Dropboxなど)に拡張したみたいなツール。
バックアップに大変便利。弊社ではサーバーのDBダンプを夜間にOneDrive(Office 365 Business Sarndardに付随してきたもの)にバックアップするために大変便利に使わせていただいている。
当然ながら、クラウド上のドライブから認証を得る必要があるが、設定中に自動的にブラウザが立ち上がって認証を通してくれるので便利。
発端
バックアップのログに以下のような文言が。
2023/03/22 22:00:12 Failed to create file system for "od:/backup/www/hogehoge": failed to get root: Get "https://graph.microsoft.com/v1.0/drives/b!hogehogehoge-hogetakusan/root": couldn't fetch token - maybe it has expired? - refresh with "rclone config reconnect od:": oauth2: cannot fetch token: 400 Bad Request
ルートに到達できず、トークンが取得できなくなった、とのこと。
人間に聞いてみると Office365の認証がスマホで二段階認証しろとうるさいので、社内スマホで二段階認証を通すようにした らしい。
連絡と共有大事。
解決
ブラウザが使えるローカルマシンで再度
$ rclone config
を走らせると、ローカルでブラウザが立ち上がり、スマホからの2段階認証が求められ、それを通すと新たな認証情報が生成される。
.config/rclone.clone/rsync.conf に生成された認証情報をぺたっとサーバーの方の(.config/rclone.clone/rsync.conf)に貼れば万事解決。(設定時のリモート名などは元のものと同じにすること)
”この認証情報を持ったアプリのトークン取得を許可する”という観点なので、同一マシンでなくてもいいんですね。
教訓
- 認証情報を変えたら影響範囲を調べて情報共有しませう