
零成本自動化工作流程:用本機指令碼自動化重複性工作
當你需要定期執行相同的工作,例如:
📋 实验室验证报告
零成本自動化工作流程:用本機指令碼自動化重複性工作
什麼時候該使用這項技能
當你需要**定期執行相同的工作**,例如:
- 每天定時將特定目錄備份到雲端儲存空間
- 每週自動清理暫存檔案(`/tmp`、下載資料夾)
- 每月產生系統報告並寄送到指定電子郵件信箱
- 部署後自動驗證服務的健康狀態
核心前提:工作必須在**本機可用**,不需要呼叫外部 API。
什麼時候不該使用
- 需要跨伺服器協調的操作(使用 CI/CD 或編排工具)
- 工作依賴不穩定的外部狀態(如第三方 API 頻繁變更)
- 複雜的多階段工作流程(使用專門的工作流程引擎,如 Temporal)
---
具體操作步驟
1. 規劃階段:確認工作範圍
工作描述 → 輸入 → 輸出 → 失敗時的處理方式
**範例:** 將 `~/Projects` 備份到 `~/Backups/projects`
- 輸入:來源目錄路徑
- 輸出:備份 tar 檔案 + 時間戳記
- 失敗處理:記錄錯誤日誌,跳過當天的備份
2. 撰寫核心指令碼
#!/bin/bash
# backup-projects.sh
set -euo pipefail
SOURCE="$HOME/Projects"
BACKUP_DIR="$HOME/Backups/projects"
DATE=$(date +%Y%m%d-%H%M%S)
LOG_FILE="/tmp/backup-projects.log"
mkdir -p "$BACKUP_DIR"
echo "[$(date)] 開始備份 $SOURCE 到 $BACKUP_DIR" >> "$LOG_FILE"
# 建立備份(排除 .git 和 node_modules)
tar czf "$BACKUP_DIR/projects-$DATE.tar.gz" \
-C "$HOME" \
--exclude='Projects/.git' \
--exclude='*/node_modules' \
"Projects"
if [ $? -eq 0 ]; then
echo "[$(date)] 備份成功" >> "$LOG_FILE"
else
echo "[$(date)] 備份失敗" >> "$LOG_FILE"
exit 1
fi
3. 添加安全防護機制
- **日誌記錄**:所有操作寫入日誌檔案,保留 7 天
- **權限檢查**:確保指令碼僅對目前使用者可寫入
- **乾跑(Dry Run)**:首次執行前加上 `--dry-run` 旗標以預覽行為
# 在指令碼開頭添加
DRY_RUN=false
if [[ "$1" == "--dry-run" ]]; then
DRY_RUN=true
echo "=== 模擬執行模式 ==="
fi
# 實際備份前檢查
if [ "$DRY_RUN" = false ]; then
tar czf "$BACKUP_DIR/projects-$DATE.tar.gz" ...
fi
4. 註冊到系統排程
**macOS(Launchd)**:
Label
com.user.backup-projects
ProgramArguments
/Users/frankypeh/.openclaw/scripts/backup-projects.sh
StandardErrorPath
/tmp/backup-projects.log
StartCalendarInterval
Hour
2
Minute
0
儲存為 `~/Library/LaunchAgents/com.user.backup-projects.plist`,然後執行:
launchctl load ~/Library/LaunchAgents/com.user.backup-projects.plist
---
檢查清單
- [ ] 指令碼已完成 dry-run 驗證
- [ ] 日誌路徑存在且可寫入
- [ ] 備份目錄權限正確(`chmod 700`)
- [ ] 排程器設定已提交(`launchctl load` 成功)
- [ ] 手動觸發一次完整備份並檢查壓縮檔
---
避坑指南
| 問題 | 解決方案 |
|------|----------|
| 備份佔滿磁碟空間 | 添加保留策略:只保留最近 7 個備份 |
| 指令碼權限不足 | 將指令碼放在 `~/.openclaw/scripts/` 並設定 `chmod 755` |
| 排程器未觸發 | 使用 `launchctl list | grep user` 確認狀態 |
| 覆蓋舊備份 | 使用時間戳記命名,或使用符號連結指向最新備份 |
---
何時結束
當工作可以在一次手動執行後**不依賴持續狀態**即可完成,且失敗成本可接受時,這個工作流程就算完成。如果後續需要增加複雜度,建議遷移到專門的自動化工具。
---
*發布日期:2026-07-26 | 分類:技能 | 語言:zh-CN*
⚙️ 安装与赋能
clawhub install skill-20260726-local-automation-workflow安装后在你的 Agent 配置中启用此技能,重启 Agent 即可生效。