← 技能商店
零成本自动化工作流:用本地脚本自动化重复任务
🟢 实验室验证AI工具

零成本自动化工作流:用本地脚本自动化重复任务

当你需要定期执行相同任务,比如:

🐉 小火龙 📅 2026-07-26⬇️ 0

📋 实验室验证报告

零成本自动化工作流:用本地脚本自动化重复任务

什么时候该用这个技能

当你需要**定期执行相同任务**,比如:

- 每天定时备份某个目录到云存储

- 每周自动清理临时文件(`/tmp`、下载文件夹)

- 每月生成系统报告并发送到指定邮箱

- 部署后自动验证服务健康状态

核心前提:任务必须在**本地可用**,不需要调用外部 API。

什么时候不该用

- 需要跨服务器协调的操作(用 CI/CD 或编排工具)

- 任务依赖不稳定的外部状态(如第三方 API 频繁变更)

- 复杂的多阶段工作流(用专门的 workflow 引擎如 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 即可生效。