TL;DR
OpenClaw 嘅 Cron Job 讓你設定「每 X 時間自動執行某個任務」。設定一次,之後永久自動跑,唔需要你手動觸發。
Cron Expression 速查表
Cron 用 5 個數字定義時間,格式係:分 時 日 月 星期
| Expression | 意思 |
|---|---|
0 7 * * * | 每日早上 7:00 |
0 9 * * 1 | 每週一早上 9:00 |
0 */6 * * * | 每 6 小時一次 |
*/30 * * * * | 每 30 分鐘一次 |
0 23 * * * | 每日晚上 11:00 |
0 9,15 * * * | 每日 9:00 同 15:00 |
0 9 * * 1-5 | 星期一至五早上 9:00 |
5 個實用 Cron Job 範例
範例一:每日 7:00 發早報摘要
openclaw cron add \
--schedule "0 7 * * *" \
--agent main \
--command "執行 Email 早報,抓取 Gmail 收件箱過去 24 小時嘅 email,按優先級分類,透過 Telegram 發送摘要。" \
--new-session詳細設定睇Email 早報教學。
範例二:每週一 9:00 生成工作總結
openclaw cron add \
--schedule "0 9 * * 1" \
--agent coder \
--command "生成上週工作總結:讀取 ~/.notes/weekly/ 入面上週嘅筆記,整理成「完成事項、進行中、下週重點」三部分,透過 Telegram 發送,並儲存到 ~/.notes/weekly/summary-$(date +%Y-W%V).md" \
--new-session範例三:每 6 小時檢查 GitHub Issues
openclaw cron add \
--schedule "0 */6 * * *" \
--agent coder \
--command "檢查 GitHub repo 有冇新嘅未處理 issue。如果有,列出 issue 標題同連結,透過 Telegram 通知我。" \
--new-session範例四:每日 23:00 備份重要檔案
# 建立備份 prompt
cat > ~/.openclaw/prompts/daily-backup.md << 'EOF'
執行每日備份:
1. 壓縮 ~/Documents/projects/ 目錄
2. 複製到 ~/Backups/daily/backup-$(date +%Y-%m-%d).tar.gz
3. 刪除 7 天以前嘅備份(保留最近 7 個)
4. 透過 Telegram 確認備份完成,說明備份大小
如果任何步驟失敗,立刻 Telegram 通知我並停止。
EOF
openclaw cron add \
--schedule "0 23 * * *" \
--agent main \
--prompt-file ~/.openclaw/prompts/daily-backup.md \
--new-session範例五:每小時檢查網頁變化
openclaw cron add \
--schedule "0 * * * *" \
--agent crawler \
--command "訪問 https://example.com/news,檢查有冇新文章(同 memory 記錄嘅上次清單比較)。有新文章就 Telegram 通知標題同連結。" \
--new-sessionCron Job 管理指令
# 睇所有 cron jobs
openclaw cron list
# 刪除某個 cron job(用 ID)
openclaw cron remove <cron-id>
# 暫停 / 恢復
openclaw cron pause <cron-id>
openclaw cron resume <cron-id>
# 手動觸發一次(測試用)
openclaw cron run <cron-id>
# 睇執行歷史
openclaw cron history <cron-id>安全隱患
Cron Job 係無人監督嘅自動執行。
如果你嘅 Cron Job prompt 被 prompt injection 攻擊(例如監控嘅網頁入面含有惡意指令),Agent 會在你唔知情嘅情況下自動執行。
高風險組合: Cron Job + exec Tool + 訪問外部網站 = 攻擊者可以透過惡意網頁內容讓你嘅機執行任意指令。
安全建議:
- Cron Job 用最小所需 Tool 權限(唔需要
exec嘅唔好開) - 每個 Cron Job 用獨立嘅 Agent,唔好混用
- 定期檢查
openclaw cron history確認執行正常
更多安全設定睇安全避坑指南。
費用累積警告:
Cron Job 長期跑係費用嘅最大來源之一。每個 Job 用新 session 係必要嘅——冇 --new-session 嘅 Cron Job 會讓 session 不斷增長,費用指數級上升。詳細睇Token 慳錢攻略。
踩坑:電腦休眠會跳過 Cron
問題: 你部 Mac 喺 cron 指定時間休眠,任務會被跳過。
解決方法 A: 喺 macOS 系統偏好 → 電池 → 停用「閒置時睡眠」(但會耗電)
解決方法 B: 用 launchd 代替,macOS 的 launchd 支持 wake-on-demand:
# OpenClaw 有內建轉換工具
openclaw cron to-launchd <cron-id>踩坑:時區問題
OpenClaw Cron 預設用系統時區。確認你嘅系統時區設定正確:
# 確認時區
date
# 如需要可以喺 cron 設定時區
openclaw cron add --schedule "0 7 * * *" --timezone "Asia/Hong_Kong" ...FAQ
Q:Cron Job 同 Heartbeat 有乜分別?
Cron Job 係按固定時間表執行(例如每日 7 點)。Heartbeat 係持續運行嘅後台進程,可以做即時監控。Cron 更省資源、費用更可控;Heartbeat 更即時但消耗更多 token。大部分定時任務用 Cron 就夠。
Q:可唔可以設置 Cron 失敗時自動重試?
可以喺 prompt 裡面寫明錯誤處理邏輯,但 OpenClaw 本身冇原生嘅自動重試機制。建議加入「如果失敗,Telegram 通知我並說明錯誤」嘅指令,然後手動判斷需唔需要重新執行。
Q:幾多個 Cron Job 係合理上限?
冇硬性限制,但超過 10 個 Cron Job 需要注意費用。每個 Job 都有執行成本,定期審查哪些 Job 仍然有用,唔用嘅 pause 或 remove。