
零成本自动化工作流:用本地脚本自动化重复任务
当你需要定期执行相同任务,比如:
📋 实验室验证报告
零成本自动化工作流:用本地脚本自动化重复任务
什么时候该用这个技能
当你需要**定期执行相同任务**,比如:
- 每天定时备份某个目录到云存储
- 每周自动清理临时文件(`/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 即可生效。