Agent/๐ OpenClaw/images/openclaw-06-cronjob-diagram.svg
์ด ๋ฌธ์๋ CronJob์ **์ ์ ๊ด์ (๋ฌด์์ ๋งํ๋ฉด ๋๋์ง)**๊ณผ **OpenClaw ๊ด์ (๋ด๋ถ ๊ฒฝ๋ก/์์)**์ผ๋ก ๋๋ ์ ์ ๋ฆฌํฉ๋๋ค.
AI ํ์ฉ ์๋ด: ์ด ๋ฌธ์๋ ์์ฑํ AI ๋ณด์กฐ๋ฅผ ๋ฐ์ ์์ฑ๋์์ต๋๋ค.
๋จผ์ ๋ต: ๋งํฌ๋ง ์ฃผ๋ฉด ์๋ ์ค์ ๋๋?
์งง๊ฒ ๋งํ๋ฉด ๋งํฌ๋ง์ผ๋ก๋ ์๋ ์ค์ ๋์ง ์์ต๋๋ค.
- ๋งํฌ + ๋ชฉ์ ์ ๊ฐ์ด ์ฃผ๋ฉด ์ค์ ๊ฐ๋ฅ
- ์: โ์ด ๋งํฌ ์ฐธ๊ณ ํด์ ๋งค์ผ ์ค์ 7์์ ์์ฝ ๋ณด๋ด๋ cron ์ก ์ค์ ํด์คโ
์ฆ, ์ ์ ๊ฐ JSON์ ๋ค ์ดํดํ์ง ์์๋ ๋ฉ๋๋ค. ์ํ๋ ๋์๋ง ๋งํ๋ฉด ๋๊ณ , OpenClaw๊ฐ ๋ด๋ถ ์์์ผ๋ก ๋ณํํด ์ค์ ํ๋ฉด ๋ฉ๋๋ค.
1) ์ ์ ๊ด์ : ์ด๋ ๊ฒ ๋งํ๋ฉด ๋๋ค (๋ช ๋ น์ด/์์ฒญ๋ฌธ)
A. ์ฑํ ์์ ๋ฐ๋ก ์์ฒญ (๊ฐ์ฅ ์ฌ์ด ๋ฐฉ๋ฒ)
1) "20๋ถ ๋ค์ ํ์ ์ค๋นํ๋ผ๊ณ ๋ฆฌ๋ง์ธ๋ cron ์ก ๋ง๋ค์ด์ค"
2) "๋งค์ผ ์ค์ 7์์ AI ๋ด์ค ๋ธ๋ฆฌํ cron์ผ๋ก ๋ณด๋ด์ค"
3) "30๋ถ๋ง๋ค ๊ต์ก์์ฒญ ๋ฉ์ผ ์ฒดํฌํด์ ์ ๋ฉ์ผ๋ง ์๋ ค์ค"
4) "๋ฑ๋ก๋ cron ๋ชฉ๋ก ๋ณด์ฌ์ค"
5) "OOO ์ก ์ง๊ธ ํ ๋ฒ ๊ฐ์ ์คํํด์ค"
6) "OOO ์ก ๋นํ์ฑํ/์ญ์ ํด์ค"B. ํฐ๋ฏธ๋ CLI๋ก ์ง์ ์คํ (์ ํ)
openclaw cron list
openclaw cron run <job-id>
openclaw cron runs --id <job-id>
openclaw cron remove --id <job-id>์์ฃผ ์ฐ๋ ์ถ๊ฐ ์์:
# ๋งค์ผ 07:00, isolated ์คํ + ์ ๋ฌ
openclaw cron add \
--name "Morning brief" \
--cron "0 7 * * *" \
--tz "Asia/Seoul" \
--session isolated \
--message "์ค๋์ AI ๋ด์ค 3๊ฐ๋ฅผ ์์ฝํด์ค" \
--announce
# 1ํ์ฑ ๋ฆฌ๋ง์ธ๋
openclaw cron add \
--name "Call back" \
--at "2026-02-19T01:00:00Z" \
--session main \
--system-event "๋ฆฌ๋ง์ธ๋: ๊ณ ๊ฐ ์ฝ๋ฐฑ"2) OpenClaw ๊ด์ : ์ค์ ๋งค๋ด์ผ (๊ฒฝ๋ก + ์์)
2-1. ์ ์ฅ ๊ฒฝ๋ก
Cron Job์ Gateway ํธ์คํธ์ ์๊ตฌ ์ ์ฅ๋ฉ๋๋ค.
- ๊ธฐ๋ณธ ๊ฒฝ๋ก:
~/.openclaw/cron/jobs.json
์ฃผ์:
- ์๋ ํธ์ง์ Gateway ์ค์ง ์ํ์์๋ง ์์
- ์ผ๋ฐ์ ์ผ๋ก๋
openclaw cron ...๋๋ cron tool ํธ์ถ ์ฌ์ฉ ๊ถ์ฅ
2-2. ํต์ฌ ๊ตฌ์กฐ
flowchart LR U[์ ์ ์์ฒญ] --> J[Job ์์ฑ] J --> S[schedule: ์ธ์ ] J --> T[sessionTarget: ์ด๋์] J --> P[payload: ๋ฌด์์] J --> D[delivery: ์ด๋๋ก ๋ณด๋ผ์ง] T --> M[main] T --> I[isolated] M --> MS[systemEvent ํ์] I --> IA[agentTurn ํ์]
ํ์ ํ๋
{
"schedule": { ... },
"sessionTarget": "main | isolated",
"payload": { ... }
}๊ท์น(์ค์)
sessionTarget: "main"์ด๋ฉดpayload.kind๋ ๋ฐ๋์"systemEvent"sessionTarget: "isolated"์ด๋ฉดpayload.kind๋ ๋ฐ๋์"agentTurn"delivery๋ isolated job์์๋ง ์ฌ์ฉ- isolated์์
delivery์๋ต ์ ๊ธฐ๋ณธ๊ฐ์ ๋ณดํตannounce
3) OpenClaw ๊ด์ : ๋ณต๋ถ ํ ํ๋ฆฟ
ํ ํ๋ฆฟ A โ ๋ฉ์ธ ์ธ์ (systemEvent) 1ํ ๋ฆฌ๋ง์ธ๋
{
"name": "๋ฆฌ๋ง์ธ๋",
"schedule": { "kind": "at", "at": "2026-02-19T01:00:00Z" },
"sessionTarget": "main",
"wakeMode": "now",
"payload": {
"kind": "systemEvent",
"text": "๋ฆฌ๋ง์ธ๋: 10์ ํ์ ์ค๋น ์์"
},
"deleteAfterRun": true
}ํ ํ๋ฆฟ B โ isolated ๋ฐ๋ณต ์์ + ์ฑ๋ ์ ๋ฌ
{
"name": "๋งค์ผ ์์นจ ๋ด์ค ๋ธ๋ฆฌํ",
"schedule": {
"kind": "cron",
"expr": "0 7 * * *",
"tz": "Asia/Seoul"
},
"sessionTarget": "isolated",
"payload": {
"kind": "agentTurn",
"message": "์ค๋์ AI/๊ธฐ์ ํต์ฌ ๋ด์ค 3๊ฐ๋ฅผ ์์ฝํด์ ์ ๋ฌํด์ค."
},
"delivery": {
"mode": "announce",
"channel": "telegram",
"to": "telegram:YOUR_TELEGRAM_USER_ID"
}
}4) ์ด์ ์ฒดํฌ๋ฆฌ์คํธ (์ค์ ๋ฐฉ์ง)
- ์๊ฐ๋(
tz)๋ฅผ ๋ช ์ํ๋๊ฐ? (์:Asia/Seoul) - main/isolated์ payload.kind ์กฐํฉ์ด ๋ง๋๊ฐ?
- ์ ๋ฌ์ด ํ์ํ ์ก์
delivery๋ฅผ ์ค์ ํ๋๊ฐ? - ๋ฑ๋ก ํ
list/run์ผ๋ก ์ค๋ชจํฌ ํ ์คํธ ํ๋๊ฐ? - ์คํจ ์
runs --id <job-id>๋ก ์ต๊ทผ ์คํ๋ก๊ทธ๋ฅผ ํ์ธํ๋๊ฐ?
๊ฒฐ๋ก
CronJob์ โ์ธ์ + ๋ฌด์์โ๋ง ๋ช ํํ๋ฉด ์ด๋ ต์ง ์์ต๋๋ค.
- ์ ์ ๋ ์์ฐ์ด๋ก ์์ฒญ
- OpenClaw๋ ๋ด๋ถ ์์(JSON)์ผ๋ก ๋ณํ
- ์ด์์๋ ๊ฒฝ๋ก/๊ท์น๋ง ์๋ฉด ์์ ์ ์ผ๋ก ์ ์ง๋ณด์ ๊ฐ๋ฅ
Flux ๐ฆ | 2026-02-18
โ Mac Mini + Ollama | Quota ๊ด๋ฆฌ โ
๊ด๋ จ ๊ธ
- ๐ฆ 25. ํฌ๋ก ์๋ธ์์ด์ ํธ ๋ถ์ฐ์ด์ โ Cron + ์๋ธ์์ด์ ํธ๋ก ์์ ๋ถ์ฐ
-
- cron ์๊ฐ ๋ณ๊ฒฝ ์ค๋ฅ ํด๊ฒฐ โ cron ์ค์ ํธ๋ฌ๋ธ์ํ