# Synology NAS → Google Drive 自動備份(rclone)
15 間分店,每間一部 Synology NAS,每晚自動將指定資料夾備份上**同一個 Google One(5TB)個人帳戶**:
```
我的雲端硬碟/NAS-Backup/
├─ TYS/ ← 分店代號
│ ├─ docs/ ← 最新版本(同 NAS 一樣)
│ └─ _versions/2026-09-25/docs/... ← 被改/被刪嘅舊檔,保留 30 日
├─ TP01/ ...
└─ ...
```
檔案:`install.sh`(安裝程式,內附精靈、健康檢查、更新、可選 Tailscale)、`install.sh.sha256`、`README-zh-HK.md`(本文件)。
一行安裝:`curl -fsSL https://nas-app.derekhost.com/install.sh | sudo sh`
**所有檔案都冇任何密碼/token**;唯一機密係你自己整嘅 `rclone.conf`。
---
## Part 1:Google 一次性設定(IT admin 喺 Windows 電腦做一次)
### 1. 建立自己嘅 OAuth Client ID(約 10 分鐘)
> 唔用 rclone 內置嘅公用 client ID,因為佢好多人共用、成日被限速。
1. 用**備份用嗰個 Gmail** 登入 → 上面揀 project → **New Project**(例如 `nas-backup`)。
2. **APIs & Services → Library** → 搵 **Google Drive API** → **Enable**。
3. **APIs & Services → OAuth consent screen**(新版叫 *Google Auth Platform*):
- User type:**External**
- App name 隨便(`NAS Backup`),support email / developer email 填自己 Gmail
- **Audience / Test users**:加返自己個 Gmail
4. ⚠️ **Publish app → 轉做 In production**。
*Testing* 狀態嘅 token **7 日就過期**,15 部 NAS 每星期都要重新授權!
轉 Production 唔使 Google 審核(個人自用,登入時會見到「Google 未驗證此應用程式」,撳 *進階 → 前往 NAS Backup* 即可)。
5. **Credentials → Create credentials → OAuth client ID** → Application type:**Desktop app** → Create。
抄低 **Client ID** 同 **Client secret**(唔好貼去 WhatsApp/email)。
### 2. 喺 Windows 用 rclone 建立 remote `gdrive`
1. 去 下載 **Windows (Intel/AMD 64 bit)** zip,解壓到例如 `C:\rclone\`。
2. 開 **命令提示字元 (cmd)**:
```
cd C:\rclone
rclone config
```
3. 按以下答(其餘直接 Enter):
| 問題 | 答 |
|---|---|
| `n) New remote` | `n` |
| name | **`gdrive`**(一定要叫呢個名) |
| Storage | `drive`(Google Drive) |
| client_id / client_secret | 貼上第 1 步嗰兩個 |
| scope | **`1`**(`drive`,完整權限,建議)|
| service_account_file | 留空 Enter |
| Edit advanced config? | `n` |
| Use web browser to automatically authenticate? | **`y`** → 瀏覽器彈出,登入備份 Gmail → 允許 |
| Configure this as a Shared Drive? | `n` |
| Keep this remote? | `y`,然後 `q` 離開 |
> **scope 揀邊個?** `drive`:簡單穩陣,建議。`drive.file`:rclone 只睇到自己上傳嘅檔(較安全,NAS 被入侵都刪唔到你 Drive 其他檔案),但如果將來刪咗/換咗 OAuth client,舊備份對新 client「隱形」,會全部重新上傳。
4. 測試:`rclone lsd gdrive:`(見到你 Drive 啲資料夾就 OK)。
### 3. 將 rclone.conf 交畀每部 NAS
```
rclone config file
```
會顯示路徑,例如 `C:\Users\admin\AppData\Roaming\rclone\rclone.conf`。
- 用 **USB 手指 / SCP / File Station 上傳到只有 admin 睇到嘅資料夾**,安裝完即刻刪。
- ❌ **唔好**經 WhatsApp、WeChat、email、Teams 傳 —— 裏面個 token = 你成個 Google Drive 嘅鎖匙。
- 15 部 NAS 用**同一份** rclone.conf 就得。
---
## Part 2:每間分店安裝(一行指令)
### 事前準備(DSM 6.2 / 7.x 一樣)
- DSM **控制台 → 終端機和 SNMP → 啟動 SSH 功能**(裝完可以熄返)。
- 用**管理員帳戶**(administrators 群組)。
- **控制台 → 地區選項 → 時間**:開 NTP 同步(時間差太遠 Google / Tailscale 登入會失敗)。
- 用 File Station 將 `rclone.conf` 上傳到 **`/volume1/admin-tools/`**(權限只限 admin)。安裝程式會自動搵到佢(亦會搵 `/volume*/public/`、`/volume*/homes/*/`)。
### ⭐ 主要方法:一行指令 + 設定精靈
```sh
ssh admin@192.168.1.10 # 換成分店 NAS IP
curl -fsSL https://nas-app.derekhost.com/install.sh | sudo sh
```
冇 curl 就用:`wget -qO- https://nas-app.derekhost.com/install.sh | sudo sh`
(sudo 會問 admin 密碼。精靈經 `/dev/tty` 讀你輸入,所以經 pipe 都用得。)
帶參數(全自動,唔會問問題):
```sh
curl -fsSL https://nas-app.derekhost.com/install.sh | sudo sh -s -- \
--branch TYS --src "/volume1/docs,/volume1/photo" --config /volume1/admin-tools/rclone.conf
```
- 漏咗必要參數(例如冇 `--src`)→ 自動開精靈,已俾嘅參數做預設值。
- 冇 TTY(例如排程/遙控執行)又漏參數 → 清楚報錯,列出缺咩。
- 唔係 root → 印出正確嘅 `sudo` 一行指令畀你 copy。
- 安裝程式成個包喺 `main()` 入面,下載唔完整都唔會執行一半。
### 手動方法(唔想用 pipe)
```sh
sudo -i
curl -fsSLO https://nas-app.derekhost.com/install.sh
curl -fsSL https://nas-app.derekhost.com/install.sh.sha256 | sha256sum -c -
sh install.sh # 精靈;或者加上面嗰啲參數
```
裝完記得刪咗上傳嗰份:`rm -f /volume1/admin-tools/rclone.conf`(系統已複製到 `/usr/local/etc/nas-gdrive-backup/`,chmod 600)。
### 分店代號(shop code)
- `--branch` 用分店代號:英文/數字/`-`/`_`,最多 16 字,自動轉大寫(`tys` → `TYS`)。舊式 `01`–`15` 仍然得(→ `branch-01`)。
- Drive 路徑:`NAS-Backup/<代號>/...`;Tailscale 名:`nas-<代號小寫>`;log / status 都用代號。
- **自訂 Drive 資料夾(v1.1.1)**:`--site-dir 路徑` 可以改 `<代號>` 嗰層(可以有 `/`),分店代號照樣控制 Tailscale 名、排程時間、DSM 任務名。精靈第 2 步都會問(Enter = 預設)。例如 Shop 218:
```sh
sudo sh install.sh --branch 218 --remote-root SBG/NAS --site-dir 218/daily-backup \
--src /volume1/doc --time 02:00 --keep-days 30
# → gdrive:SBG/NAS/218/daily-backup/doc 舊版本:gdrive:SBG/NAS/218/daily-backup/_versions/
```
規則:唔可以 `/` 開頭(尾嗰個 `/` 會自動刪),唔可以有 `..`,只可以用英文、數字、`.` `_` `-` `/`;唔啱會即刻報錯停低。設定會記喺 `backup.conf`(`SITE_DIR_CUSTOM`),`nas-gdrive-backup update` / `status` / `health` 都會跟。唔加 `--site-dir` 就同以前一模一樣。
- **排程錯開**:`install.sh` 頂部有 `BRANCH_TABLE`(而家係空,等 Derek 俾最終名單),每行 `代號:slot`,時間 = 01:00 + slot × 6 分鐘,例如:
```
BRANCH_TABLE='
TYS:1
TP01:2
'
```
唔喺表入面嘅代號會用穩定 hash(cksum mod 20)→ 01:00–02:54 之間固定一個時間。`--time HH:MM` 永遠優先。
⚠️ hash 有機會兩間撞同一時間;名單定咗之後填 `BRANCH_TABLE` 最穩陣。
### 精靈畫面例子
```
=== NAS -> Google Drive 備份設定精靈 (setup wizard) v1.1.1 ===
直接撳 Enter = 用 [ ] 入面嘅預設值 (Enter accepts default)
[1/7] 系統檢查 Preflight
[ OK ] Model: DS220j (unique=synology_rtd1296_ds220j, hw=DS220j)
[ OK ] DSM 7.2.2 build 72806
[ OK ] CPU arch: aarch64 -> rclone linux-arm64
[ OK ] RAM: 494 MB -> low-memory profile
[ OK ] HTTPS www.googleapis.com reachable (HTTP 200, TLS OK)
[ OK ] Clock skew 1s vs Google
[ OK ] Tailscale: not installed; package available: tailscale-armv8-1.102.4-700102004-dsm7.spk
[ OK ] LAN subnet: 10.10.3.0/24
=== Preflight: PASS ===
[2/7] 分店代號 Shop code
輸入分店代號 (英文/數字,例如 TYS、TP01;舊式 01-15 都得)
分店代號 Code: tys
Drive 子資料夾 (喺 NAS-Backup/ 下面;可以有 /,例如 218/daily-backup;Enter = 預設)
Drive 子資料夾 Site dir [TYS]:
→ Drive 資料夾: NAS-Backup/TYS
[3/7] 要備份嘅資料夾 Folders
1) /volume1/docs
2) /volume1/homes (用戶家目錄 homes)
3) /volume1/photo
揀編號用逗號分隔 (e.g. 1,3);all = 全部;或者直接打路徑 /volume1/xxx
揀選 Select: 1,3
[4/7] Google Drive 設定檔 rclone.conf
自動搵到 (auto-detected): /volume1/admin-tools/rclone.conf
rclone.conf 路徑 path [/volume1/admin-tools/rclone.conf]:
準備 rclone (download if needed) ... OK (rclone v1.75.1)
測試連線 (rclone lsd gdrive:) ... OK ✓
[5/7] 時間表 Schedule
每日備份時間 Daily time (HH:MM) [02:00]:
舊版本保留日數 Keep versions (days) [30]:
用 crontab 自動排程? (N = 之後喺 DSM 工作排程表手動加,較穩陣) (y/N) [N]:
[6/7] Tailscale 遙距網絡 (可選 optional)
安裝 Tailscale? Install Tailscale (y/N) [N]: y
做 exit node? Advertise as exit node (y/N) [N]: y
分享本地 LAN 網段? Share this NAS's local LAN subnet (y/N) [N]: y
偵測到 LAN (detected): 10.10.3.0/24
網段 Subnet CIDR (逗號分隔) [10.10.3.0/24]:
Auth key: 輸入 key 檔案路徑;打 - 隱藏貼上;Enter = 之後用網址登入
Auth key: -
貼上 key (唔會顯示 hidden):
[7/7] 確認 Confirm
分店 Code : TYS → gdrive:NAS-Backup/TYS
資料夾 Folders: /volume1/docs,/volume1/photo
時間 Time : 每日 02:00 保留 Keep: 30 日 排程: DSM Task Scheduler
Tailscale : 安裝 exit node: Y subnet: 10.10.3.0/24 登入: auth key
開始安裝? Install now (Y/n) [Y]:
```
裝完會自動跑一次**健康檢查**(見下面)。
常用選項:`--time 02:00`、`--site-dir 218/daily-backup`(自訂 Drive 資料夾)、`--keep-days 60`、`--use-crontab`、`--dry-run`、`--check-only`(只做系統檢查,包括 Tailscale 套件同 LAN 網段)、`--upgrade`(更新 rclone)。全部:`sh install.sh --help`。
### 排程(二揀一,唔好兩樣都做)
**A. DSM 工作排程表(建議,DSM 更新都唔會冇)**
控制台 → 任務排程表 → 新增 → 排程的任務 → **使用者定義的指令碼**
- 一般:任務名稱 `NAS-GDrive-Backup-TYS`,使用者 **root**
- 排程:每日,首次執行時間 = 安裝程式顯示嘅時間
- 任務設定:勾「僅在指令碼異常終止時傳送執行詳細資料」;指令碼:`/usr/local/bin/nas-gdrive-backup.sh`
- 揀個任務 → **執行** 試一次。
**B. `--use-crontab`**:寫入 `/etc/crontab` 並重啟 crond(DSM7 `synosystemctl`;DSM6 `synoservice`/`synoservicectl`)。⚠️ DSM 大版本更新可能會洗走,更新後再跑一次安裝(或者 `nas-gdrive-backup update`)。
---
## Part 3(可選):Tailscale 遙距網絡 / exit node / subnet router
Tailnet:**sbgitdept**(實際加入邊個 tailnet 由 auth key / 登入帳戶決定)。
```sh
# 備份 + Tailscale + exit node(有 TTY 會問埋缺少嘅備份設定)
curl -fsSL https://nas-app.derekhost.com/install.sh | sudo sh -s -- --branch TYS --tailscale --exit-node
# 加埋分享分店 LAN(自動偵測網段,或者 --routes 指定)
curl -fsSL https://nas-app.derekhost.com/install.sh | sudo sh -s -- --branch TYS --tailscale --exit-node --subnet-router --routes 10.10.3.0/24
# 只裝 Tailscale、唔搞備份
curl -fsSL https://nas-app.derekhost.com/install.sh | sudo sh -s -- --branch TYS --tailscale-only --exit-node
# 用 auth key(唔使開瀏覽器登入):key 放入只有 root 讀到嘅檔案
curl -fsSL https://nas-app.derekhost.com/install.sh | sudo sh -s -- --branch TYS --tailscale --ts-authkey-file /volume1/admin-tools/tskey.txt
```
- 選項:`--tailscale`、`--exit-node`、`--subnet-router`、`--routes CIDR[,CIDR]`、`--ts-authkey-file 檔案`(或者環境變數 `TS_AUTHKEY`)、`--ts-hostname`、`--tailscale-only`。
- **Auth key 永遠唔會顯示、唔會寫入 log**(經 `--authkey=file:` 傳入,唔會出現喺 `ps`)。冇 key 就會印一條登入網址,用瀏覽器開嚟登入。建議用 **tagged(例如 `tag:nas`)、可重用、預先批准** 嘅 key,登入後關閉 key expiry。
- 安裝方法:已裝就跳過 → 試 `synopkg install_from_server Tailscale`(套件中心)→ 唔得就由 pkgs.tailscale.com 下載啱型號/DSM 嘅官方 `.spk`(驗 SHA256)再 `synopkg install`。
- exit node / subnet router 需要:IP forwarding + DSM 7 嘅 `tailscale configure-host`(開 TUN)。安裝程式會寫 `/usr/local/bin/nas-tailscale-boot.sh` 並即刻跑一次。
**DSM 7 必做**:控制台 → 任務排程表 → 新增 → **觸發的任務** → 使用者定義的指令碼,使用者 root,事件「**開機**」,指令碼 `/usr/local/bin/nas-tailscale-boot.sh`。Tailscale 套件升級後亦要重跑一次或者重開機。
- 已登入嘅機會用 `tailscale set`(只改呢幾項,保留其他設定);未登入先用 `tailscale up --reset`,exit node 同 routes 一次過設定。
- ⚠️ **要批准**: → `nas-tys` → Edit route settings → 剔 exit node / subnet。或者喺 ACL 用 `autoApprovers`:
```json
"autoApprovers": { "exitNode": ["tag:nas"], "routes": { "10.10.0.0/16": ["tag:nas"] } }
```
- ⚠️ **網段撞車**:如果 15 間分店都係 `192.168.1.0/24`(或 `192.168.0.0/24`、`10.0.0.0/24`),subnet routes 會互相覆蓋,只得一間用得。安裝程式同 `--check-only` 會警告。解決:每間分店用唯一網段(例如 `10.10..0/24`),或者用 Tailscale 4via6。
- Synology 防火牆如果有開,要加規則允許 `100.64.0.0/10`。
- DSM 6 → 7 升級後要**移除再重裝** Tailscale 套件(Tailscale 官方說明),唔好經 Tailscale 遙距做 DSM 升級。
---
## 日常檢查
```sh
nas-gdrive-backup status # 上次時間、結果、上傳咗幾多、Drive 用量、下次時間、Tailscale
nas-gdrive-backup health # 健康檢查 PASS/WARN/FAIL(有 FAIL 就 exit 1)
nas-gdrive-backup health --json # 俾日後集中監察用
sudo sh install.sh --health # 同上(經安裝程式)
ls -lt /var/log/nas-gdrive-backup/ # 保留最近 14 份 log
```
`health` 檢查:rclone 行唔行到+版本;rclone.conf 喺度、權限 600、有 `[gdrive]`;Drive 連線(`lsd`,有 timeout)+寫入測試(喺 `NAS-Backup/<代號>/.healthcheck` 上傳再刪一個細檔);每個來源資料夾存在而且唔係空;備份程式;排程(crontab 或者 DSM 任務排程表,偵測唔到就提醒);上次備份結果同時間(> 48 小時 WARN);磁碟/記憶體。揀咗 Tailscale 再加:tailscaled 有冇行、登入狀態、tailnet 名、hostname、exit node / routes 有冇 advertise 同埋**有冇被批准**、IP forwarding、configure-host(`tailscale0` 介面)。`--offline` 跳過網絡測試。
例子:
```
健康檢查 Health check - TYS (2026-09-26 09:00:01)
------------------------------------------------------------------
PASS rclone 程式: rclone v1.75.1
PASS rclone.conf: perm 600, [gdrive] OK
PASS Google Drive 連線: rclone lsd gdrive: OK
PASS Drive 寫入測試: upload + delete OK (NAS-Backup/TYS/.healthcheck)
PASS 來源資料夾: /volume1/docs
PASS 備份程式: /usr/local/bin/nas-gdrive-backup.sh
WARN 排程: 請確認 DSM 任務排程表有每日 02:00 任務 (偵測唔到)
PASS 上次備份: OK @ 2026-09-26 02:00:04
PASS Tailscale 登入: tailnet=sbgitdept host=nas-tys ip=100.x.y.z
WARN Exit node: advertised 但未批准 (admin console / autoApprovers)
PASS IP forwarding: ipv4 on
PASS configure-host (TUN): tailscale0 存在
------------------------------------------------------------------
結果: WARN - 有 2 項要留意,但冇嚴重問題
```
JSON 格式:`{"site":"TYS","host":"...","time":"...","overall":"WARN","fail":0,"warn":2,"checks":[{"status":"PASS","id":"rclone","name":"rclone 程式","detail":"..."}, ...]}`
失敗時備份程式會 exit 1(DSM 工作排程表會 email 通知)。亦可以加 `--notify-cmd '指令'`(收到 `STATUS`、`LOGFILE`、`BRANCH`)。
## 更新(手動,唔會自動更新)
```sh
sudo nas-gdrive-backup update # 下載 install.sh + install.sh.sha256,驗 SHA256,照舊設定重裝
sudo nas-gdrive-backup update --rclone # 順便更新 rclone
```
會保留:分店代號、資料夾、時間、保留日數、調校、rclone.conf、Tailscale(**唔會**重新 `tailscale up`)。SHA256 唔啱就唔會更新。
網站地址預設 `https://nas-app.derekhost.com`,可以用環境變數 `NAS_APP_URL` 改(例如測試)。
**發佈新版**:網站要同時放 `install.sh` 同 `install.sh.sha256`(`sha256sum install.sh > install.sh.sha256`)。
## 還原檔案
- **最簡單**:網頁 → `NAS-Backup/TYS/...` → 右鍵下載。舊版本 / 已刪檔案喺 `_versions/日期/`。
- **用 NAS 還原**(SSH + `sudo -i`):
```sh
C=/usr/local/etc/nas-gdrive-backup/rclone.conf
rclone --config $C copy "gdrive:NAS-Backup/TYS/docs/報價/2026.xlsx" /volume1/docs/_restore/
rclone --config $C copy "gdrive:NAS-Backup/TYS/docs" /volume1/docs/_restore/ -P
rclone --config $C copy "gdrive:NAS-Backup/TYS/_versions/2026-09-20/docs" /volume1/docs/_restore_0920/
```
⚠️ 還原要用 `copy`,**千祈唔好用 `sync` 反方向**。
## 解除安裝
```sh
curl -fsSL https://nas-app.derekhost.com/install.sh | sudo sh -s -- --uninstall # 刪 runner、設定、rclone.conf、cron(保留 rclone、log、Tailscale)
curl -fsSL https://nas-app.derekhost.com/install.sh | sudo sh -s -- --uninstall --purge # 連 rclone 同 log
curl -fsSL https://nas-app.derekhost.com/install.sh | sudo sh -s -- --uninstall --purge-tailscale # 連 Tailscale 套件
```
再去 DSM 工作排程表刪咗備份任務(同 Tailscale 開機任務)。Google Drive 上嘅備份唔會被刪;Tailscale admin console 入面部機要自己刪。
---
## Google Drive 限制(15 間共用 1 個帳戶,一定要知)
- 每個 Google 帳戶**每日上傳上限約 750GB**,**15 間分店加埋共用**。超咗會停到第二日(腳本用 `--drive-stop-on-upload-limit`,會清楚報錯而唔係無限重試)。
- API 次數都係成個帳戶共用 → 所以每間分店時間錯開(`BRANCH_TABLE` slot 或 hash,01:00 起每 6 分鐘一格),同埋預設 `--tpslimit 8`。
- **第一次上傳**如果資料多(例如全部分店加埋 > 750GB),可能要**幾日**先完成;建議分批(每日裝 2–3 間分店)。之後每日只上傳有改動嘅檔案。
- 5TB 空間亦係共用,`_versions` 都計埋,改動多嘅分店可以用 `--keep-days 14`。
- 所有分店寫入同一帳戶 `NAS-Backup/<代號>/`,每間只會 sync 自己嗰個資料夾。
## 兼容性(2026-09 核對 Synology 官方資料)
| 型號 | CPU / 架構 | RAM | rclone 版本 | 最高 DSM(官方) | 自動調校 | 備註 / 風險 |
|---|---|---|---|---|---|---|
| DS215j | Marvell Armada 375, 32-bit **armv7l** | 512MB | linux-arm-v7 | **7.1.1**-42962 Update 9 (2025-08-05) | 2 / 4 / 8M / 8M | 官方產品狀態:DSM 更新 = *suspended*(即唔再有更新),技術支援 limited。**有保安風險,建議更換**。 |
| DS216j | Marvell Armada 385, 32-bit **armv7l** | 512MB | linux-arm-v7 | **7.4**.1-90080 (2026-07-23);官方:**7.4 係最後可升級大版本** | 2 / 4 / 8M / 8M | 7.x 更新唔會自動推送,要喺下載中心手動下載。RAM 細,備份時避免同時做其他重工作。 |
| DS220j | Realtek RTD1296, 64-bit **aarch64** | 512MB | linux-arm64 | **7.4**.1-90080 (2026-07-23) | 2 / 4 / 8M / 8M | 暫時仲有完整更新。RAM 細,同上。 |
| DS216+ | Intel Celeron N3050, x86_64 | 1GB* | linux-amd64 | **7.4**.1-90080;官方:**7.4 係最後可升級大版本** | 2 / 4 / 8M / 8M(≤1GB) | 同 DS216j,要手動更新。 |
| DS218+ | Intel Celeron J3355, x86_64 | 2GB* | linux-amd64 | **7.4**.1-90080;官方:**7.4 係最後可升級大版本** | 3 / 6 / 16M / 16M | 同上。 |
| DS220+ | Intel Celeron J4025, x86_64 | 2GB* | linux-amd64 | **7.4**.1-90080 (2026-07-23) | 3 / 6 / 16M / 16M | 暫時仲有完整更新。 |
自動調校 = `transfers / checkers / drive-chunk-size / buffer-size`,全部加 `--use-mmap`,預設**唔用** `--fast-list`(慳記憶體)。可以用 `--transfers`、`--checkers`、`--chunk-size`、`--buffer-size`、`--fast-list`、`--bwlimit` 自己改。
資料來源:Synology 官方 DSM Release Notes(synology.com releaseNote API,DSM 7.4-90075 註明「DSM 7.4 will be the last upgradable version」)、Synology Archive(archive.synology.com,DS215j 最後見到 7.1.1-42962-9)、Synology 產品狀態頁(products/status)、Synology KB「What kind of CPU does my NAS have」。
\* DS216+/DS218+/DS220+ 嘅**出廠 RAM 未有喺官方頁面再核對(unverified)**;腳本會自己讀 `/proc/meminfo` 決定設定,所以唔影響運作。
所有 6 款喺 Synology 產品狀態頁都係 *Phase Out*(停產)。DSM 6.2 已於 2024-10-01 完全 EOL(冇保安更新),腳本仍然支援但強烈建議升級。
### 型號注意事項
- **DS215j / DS216j(32-bit ARM, 512MB)**:rclone 可以跑但慢;大檔案上傳時 CPU 會好高,建議排喺夜晚。如果仲有 DSM 6.2 嘅機,盡快升級(DS215j 最多 7.1.1,DS216j 可到 7.4)。
- **DS220j(aarch64, 512MB)**:效能比 j 系列 ARMv7 好,但 RAM 一樣細,唔好加大 transfers。
- **+ 系列**:可以用 `--transfers 4 --fast-list` 加快(RAM ≥ 2GB 先好開 fast-list)。
- 所有型號:系統分割區(`/usr/local`)要有 ≥100MB、暫存要 ≥150MB;唔夠時用 `--tmp /volume1/某資料夾`。
### Tailscale 型號注意(2026-09 核對 pkgs.tailscale.com,v1.102.4)
| 型號 | 平台 | 會用嘅 .spk(套件中心冇先用) | 注意 |
|---|---|---|---|
| DS215j | armada375 (armv7) | `tailscale-armada375-…-dsm7.spk`(DSM 6.2:`…-dsm6.spk`)| DSM 最高 7.1.1 而且已冇更新;dsm7 套件喺 7.1.1 上面**未實機驗證**。CPU 弱,exit node 速度有限,只建議輕量用。|
| DS216j | armada38x (armv7) | `tailscale-armada38x-…-dsm7.spk` | 512MB RAM;exit node / subnet 流量大時會搶備份 CPU。|
| DS220j | rtd1296 → armv8 | `tailscale-armv8-…-dsm7.spk` | 512MB RAM;效能比 j 系列 ARMv7 好。|
| DS216+ / DS218+ / DS220+ | x86_64 | `tailscale-x86_64-…-dsm7.spk` | 最適合做 exit node。|
- DSM 6.2 都有 `…-dsm6.spk`;DSM 6 唔使 configure-host(套件以 root 運行),但仍然要 IP forwarding(開機任務照做)。
---
## 安全須知
- `rclone.conf` = 成個 Google Drive 嘅鎖匙:只放喺 `/usr/local/etc/nas-gdrive-backup/`(chmod 600,root 先讀到)。唔好放入共用資料夾、唔好經聊天/email 傳。
- 懷疑外洩:去 移除「NAS Backup」存取權 → 重新做 Part 1 第 2–3 步 → 新 rclone.conf 放入 `/volume1/admin-tools/`,每部 NAS 再跑一行安裝指令(15 部都要換)。
- Tailscale auth key 同 rclone.conf 一樣係機密:用完刪咗個 key 檔;key 外洩就喺 Tailscale admin console revoke。
- 備份用 Gmail 開**兩步驗證**;最好係專用帳戶,唔好同日常 email 共用。
- 裝完可以熄 SSH。NAS 本身記得開自動保安更新(DSM 6.2 / DS215j 已冇保安更新)。
- 呢個係「雲端副本」,唔係離線備份:NAS 中勒索軟件,加密咗嘅檔案都會被 sync 上去(舊版本會喺 `_versions` 保留 keep-days 日)。發現後**即刻停排程**,喺保留期內還原。
- 腳本安全設計:來源資料夾唔存在 / 空(例如硬碟未 mount)會**拒絕 sync**,避免雲端被清空。
---
## 附錄(可選):Google Workspace 共用雲端硬碟 + Service Account
只適用於有 Workspace 嘅公司(個人 Google One **唔適用**,因為 service account 冇自己空間)。
1. Cloud Console 建立 service account → 建立 JSON key。
2. 喺共用雲端硬碟將 service account email 加為「內容管理員」。
3. `rclone.conf`:
```ini
[gdrive]
type = drive
scope = drive
service_account_file = /path/to/sa.json
team_drive = <共用雲端硬碟 ID>
```
4. 安裝時加 `--sa-file /volume1/admin-tools/sa.json`(會複製到 `/usr/local/etc/nas-gdrive-backup/sa.json`,chmod 600)。