快轉到主要內容
  1. 文章列表/

99元20T雲端備份方案(Part 2):Kopia 進階壓縮、Pushover 通知與自動化啟動

·
Site部大開發 kopia rclone 123雲盤 webdav 備份 macOS 自動化 pushover 壓縮
目錄
99元20T雲端備份方案 - 本文屬於一個選集。
§ 2: 本文

前情提要:你已完成 Part 1,成功將 123雲盤掛載為 WebDAV,並建立 Kopia 儲存庫。本篇專注「優化 + 自動化 + 監控」。


1. 進階壓縮策略(節省空間與 CPU)
#

Kopia 支援 選擇性壓縮:僅壓縮易壓縮檔案,跳過已壓縮媒體。


選項 A:CLI 設定(推薦,精確控制)
#

## 1.1 設定壓縮演算法(zstd:3 平衡速度與比率)
kopia policy set --global --compression-compressor=zstd:3
## 1.2 設定最小壓縮大小(20KB 以下跳過,節省 CPU)
kopia policy set --global --compression-min-size=20480
## 1.3 僅壓縮易壓縮副檔名(文字、程式碼、文件)
kopia policy set --global --compression-only-extensions \
  "*.txt,*.log,*.json,*.xml,*.csv,*.yaml,*.yml,*.ini,*.conf,*.cfg,\
   *.html,*.css,*.js,*.ts,*.py,*.java,*.c,*.cpp,*.h,*.sh,*.sql,\
   *.docx,*.xlsx,*.pptx,*.md,*.sqlite"
## 1.4 跳過已壓縮或無效壓縮副檔名
kopia policy set --global --compression-disable-extensions \
  "*.jpg,*.jpeg,*.png,*.gif,*.webp,*.mp4,*.mkv,*.mov,*.zip,*.rar,*.7z,\
   *.gz,*.xz,*.iso,*.dmg,*.ova,*.vmdk,*.gpg,*.enc"
## 1.5 驗證策略
kopia policy show --global | grep -A 10 -i compression

選項 B:Kopia UI 設定(圖形化,適合初學者)
#

Kopia UI → Repository → Policies → Global Policy → Compression 頁面:

1. 壓縮演算法
#

zstd:3

2. 最小壓縮大小(位元組)
#

20480

3. 僅壓縮這些副檔名(每行一個,直接複製貼上)
#

*.txt
*.log
*.json
*.xml
*.csv
*.yaml
*.yml
*.ini
*.conf
*.cfg
*.html
*.css
*.js
*.ts
*.py
*.java
*.c
*.cpp
*.h
*.sh
*.sql
*.docx
*.xlsx
*.pptx
*.md
*.sqlite

4. 不壓縮這些副檔名(每行一個,直接複製貼上)
#

*.jpg
*.jpeg
*.png
*.gif
*.webp
*.mp4
*.mkv
*.mov
*.zip
*.rar
*.7z
*.gz
*.xz
*.iso
*.dmg
*.ova
*.vmdk
*.gpg
*.enc

效果

  • 文字檔壓縮率 > 70%
  • 影片/圖片幾乎不壓縮 → 省 CPU
  • 20KB 以下小檔直接儲存 → 快

2. Pushover 即時通知(成功/失敗皆提醒)
#

Kopia v0.18.2+ 內建 Pushover 支援,無需腳本。

## 2.1 確認版本支援
kopia --version | grep -q "v0.1[8-9]\|v0.2" && echo "支援通知" || echo "請升級"
## 2.2 建立 Pushover 設定檔(前往 https://pushover.net 註冊)
kopia notification profile configure pushover \
  --profile-name=pushover \
  --user-key=YOUR_USER_KEY \
  --app-token=YOUR_APP_TOKEN \
  --format=txt \
  --min-severity=success \
  --send-test-notification
## 2.3 驗證設定檔
kopia notification profile list
# 應顯示:pushover (txt, min-severity: success)
## 2.4 手動快照測試通知
kopia snapshot create ~/Documents --notification-profile=pushover
## 2.5 UI 排程任務加入通知(Tasks → Edit Schedule)
# 在「Extra CLI arguments」欄位加入:
# --notification-profile=pushover

預期 Pushover 訊息

Kopia Snapshot Complete
Status: Success
Errors: 0
Time: 2025-11-10T08:30:00Z
Snapshot: kopia://view/snapshot/abc123

失敗範例

Kopia Snapshot Failed
Status: Failed
Errors: 3

3. 開機自動啟動 WebDAV 服務
#

使用 launchd 確保 rclone serve 隨系統啟動。

## 3.1 建立 LaunchAgent 目錄
mkdir -p ~/Library/LaunchAgents
## 3.2 建立服務設定檔
cat > ~/Library/LaunchAgents/com.rclone.webdav.plist << 'EOF'
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.rclone.webdav</string>
    <key>ProgramArguments</key>
    <array>
        <string>/opt/homebrew/bin/rclone</string>
        <string>serve</string>
        <string>webdav</string>
        <string>kopia2:kopia-repo</string>
        <string>--addr</string>
        <string>127.0.0.1:8080</string>
        <string>--read-only</string>
        <string>false</string>
        <string>--vfs-cache-mode</string>
        <string>writes</string>
        <string>--log-level</string>
        <string>INFO</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>KeepAlive</key>
    <true/>
    <key>StandardOutPath</key>
    <string>/tmp/rclone-webdav.log</string>
    <key>StandardErrorPath</key>
    <string>/tmp/rclone-webdav.err</string>
</dict>
</plist>
EOF
## 3.3 載入服務
launchctl load ~/Library/LaunchAgents/com.rclone.webdav.plist
## 3.4 驗證服務運行
launchctl list | grep rclone
ps aux | grep rclone | grep -v grep
## 3.5 重新開機測試
# 重啟 Mac → 等待 30 秒 → 執行:
curl -s http://127.0.0.1:8080/.init
# 應回傳:init

4. 密碼安全管理(Keychain 整合)
#

避免明文儲存儲存庫密碼。

## 4.1 將密碼存入 Keychain
security add-generic-password -a "kopia-repo" -s "kopia-repo" -w "$REPO_PASS" -U
## 4.2 移除明文檔案
rm ~/kopia-pass.txt
## 4.3 建立自動登入腳本
cat > ~/.kopiarerc << 'EOF'
export KOPIA_REPOSITORY="webdav:http://127.0.0.1:8080/"
export KOPIA_PASSWORD="$(security find-generic-password -s kopia-repo -w)"
EOF
## 4.4 載入環境變數
echo '[[ -f ~/.kopiarerc ]] && source ~/.kopiarerc' >> ~/.zshrc
source ~/.zshrc
## 4.5 測試無密碼連線
kopia repository status
# 應顯示儲存庫資訊,無需輸入密碼

5. 常見問題與排除
#

問題 解決方案
rclone: command not found 確認 eval "$(/opt/homebrew/bin/brew shellenv)" 已加入 .zshrc
context canceled 檢查 rclone serve 是否在背景執行(加 &
Pushover 無通知 確認 --notification-profile=pushover 已加入快照指令
WebDAV 啟動失敗 查看 /tmp/rclone-webdav.err 日誌
密碼無法讀取 security find-generic-password -s kopia-repo -w 手動測試

6. 完整自動化流程總結
#

# 1. 系統啟動 → launchd 啟動 rclone serve
# 2. Kopia UI 開啟 → 自動讀 Keychain 密碼
# 3. 排程快照執行 → zstd 選擇性壓縮
# 4. 快照完成 → Pushover 即時推播
# 5. 99元/年,20T 容量,AES-256 加密

系列完結
#

恭喜!你已建構一套 高性價比、高安全、高自動化 的雲端備份系統:

  • 成本:99元/年
  • 容量:20TB
  • 加密:AES-256 + HMAC-SHA256
  • 工具:Kopia + Rclone + macOS 原生
  • 監控:Pushover 即時通知

這不僅是備份,更是一套可複製、可擴展的企業級架構。

如需進階功能(如多設備同步、版本控制、災難復原),歡迎留言討論!


99元20T雲端備份方案 - 本文屬於一個選集。
§ 2: 本文

相關文章

99元20T雲端備份方案(Part 1):使用 Kopia + Rclone 掛載123雲盤 WebDAV
Site部大開發 kopia rclone 123雲盤 webdav 備份 macOS 自動化
Oracle Always Free 崩盤後的備份救贖:用 Kopia + rclone 征服 123雲盤 WebDAV
忽然一週 oracle-always-free freshrss kopia rclone 123雲盤 webdav backblaze-b2 備份 自動化 pushover 一席
忽然一週 2025W44
忽然一週 proxmox Hetzner