這篇是我目前在線上環境實際使用的流程:先在 Mac 安裝並完成 Google Drive 授權,再把 rclone 設定檔同步到 Linux Server,最後在 Server 端驗證與排程定期檢查,避免備份任務因 token 問題中斷。
為什麼我不在 Server 直接做授權
很多主機環境沒有瀏覽器介面,OAuth 流程會卡住。最穩定的做法是先在有瀏覽器的 Mac 完成授權,再把設定同步到 Server。這樣流程清楚、可重現,也最適合長期排程。
Step 1:在 Mac 安裝 rclone 並完成 Google Drive 授權
- 安裝 rclone:brew install rclone
- 確認版本:rclone version
- 建立 remote:rclone config
- 名稱建議用 gdrive,Storage 選 drive,後續使用預設值,透過瀏覽器完成授權
- 測試是否可連線:rclone lsd gdrive:orca-db-backup/
Step 2:把授權設定同步到 Server
- 在 Server 建立設定目錄:ssh root@YOUR_SERVER “mkdir -p /root/.config/rclone”
- 從 Mac 複製設定檔:scp ~/.config/rclone/rclone.conf root@YOUR_SERVER:/root/.config/rclone/rclone.conf
- 修正權限:ssh root@YOUR_SERVER “chmod 600 /root/.config/rclone/rclone.conf”
Step 3:在 Server 驗證可用性
- 列出 remote:rclone listremotes
- 測試目標路徑:rclone lsd gdrive:orca-db-backup/
- 執行今天備份:./backup_db_2_gooledrive.sh –today
- 指定主機標籤:./backup_db_2_gooledrive.sh -H rocky-jp-osa –today
token 會不會過期?我用這樣判斷
實務上 rclone 會自動刷新 access token,但 refresh token 仍可能因長時間未使用、授權被撤銷、OAuth 設定異動而失效。所以不要只相信一次成功,建議做固定健康檢查。
- 健康檢查指令:rclone lsd gdrive:orca-db-backup/ > /dev/null
- 成功:代表目前 token 可正常刷新與存取
- 失敗且出現 couldn’t fetch token 或 invalid_client:代表需要重新授權並同步新設定
Step 4:加上每週自動刷新與告警
我會固定每週跑一次輕量存取,讓憑證保持活性,同時提早發現授權異常,不要等到正式備份才爆錯。
- 建立檢查腳本:/usr/local/bin/rclone-token-refresh.sh
- 內容:#!/bin/bash、set -euo pipefail、rclone lsd gdrive:orca-db-backup/ > /dev/null
- 設定可執行:chmod +x /usr/local/bin/rclone-token-refresh.sh
- 加入 crontab:0 2 * * 1 /usr/local/bin/rclone-token-refresh.sh
常見錯誤與我怎麼處理
- invalid_client:通常是 OAuth client 設定不一致或 remote 配置錯誤,重做一次 Mac 授權後再 scp
- couldn’t fetch token:refresh token 已失效或被撤銷,重新授權後覆蓋 Server 的 rclone.conf
- remote not found:Server 的設定檔路徑錯誤或權限不對,確認 /root/.config/rclone/rclone.conf 與 chmod 600
給 WordPress 開發者的落地建議
- 備份路徑固定用 主機名/日期,跨站管理最清楚
- cron 任務使用 –today,降低人工誤操作
- 每週跑 token 健康檢查,避免備份中斷才發現
- 把 rclone.conf 視為機密檔,權限與備援都要控管
這套流程重點不是華麗,而是可重複、可維運。對多站點 WordPress 維運來說,穩定比一切都重要。











