Что такое cron jobs в OpenClaw
Cron jobs — это задачи, которые OpenClaw выполняет автоматически по заданному расписанию без вашего участия. Агент «просыпается» в нужное время, делает работу и возвращается в режим ожидания.
Примеры типовых cron-задач:
- Каждое утро в 8:00 отправляет сводку важных новостей в Telegram
- Каждый час проверяет цены конкурентов и записывает в таблицу
- Каждую ночь делает бэкап базы данных и загружает на облако
- Каждую неделю формирует отчёт по аналитике сайта
- Каждые 5 минут мониторит доступность сервиса и уведомляет при падении
В отличие от heartbeat (который просто «пингует» агента и держит его активным), cron job выполняет конкретную полезную задачу по расписанию.
Синтаксис расписания
OpenClaw использует стандартный cron-синтаксис из пяти полей:
┌───── минута (0-59)
│ ┌───── час (0-23)
│ │ ┌───── день месяца (1-31)
│ │ │ ┌───── месяц (1-12)
│ │ │ │ ┌───── день недели (0-7, где 0 и 7 = воскресенье)
│ │ │ │ │
* * * * *
Примеры расписаний
| Расписание | Значение |
|---|---|
0 8 * * * | Каждый день в 8:00 |
0 8 * * 1-5 | По будням в 8:00 |
*/30 * * * * | Каждые 30 минут |
0 9 * * 1 | Каждый понедельник в 9:00 |
0 0 1 * * | Первое число каждого месяца в полночь |
*/5 9-18 * * 1-5 | Каждые 5 минут с 9 до 18 по будням |
0 2 * * * | Каждую ночь в 2:00 |
Для быстрой проверки синтаксиса используйте crontab.guru.
Настройка cron jobs в OpenClaw
Способ 1: Через конфигурационный файл
Создайте или отредактируйте ~/.openclaw/crons.json:
{
"jobs": [
{
"name": "утренний-дайджест",
"schedule": "0 8 * * 1-5",
"task": "Открой Telegram, отправь мне сводку: 3 главные новости про AI за вчера, погода на сегодня, мои задачи из Notion на день.",
"model": "gpt-4o-mini",
"timeout": "5m",
"onError": "notify"
},
{
"name": "мониторинг-цен",
"schedule": "0 */2 * * *",
"task": "Проверь цены на товары из списка ~/price-monitor/watchlist.txt, сравни с предыдущими данными в ~/price-monitor/history.csv, при изменении более чем на 5% добавь запись и отправь уведомление.",
"model": "gpt-4o-mini",
"timeout": "3m",
"onError": "log"
}
]
}
Применить конфиг:
openclaw cron reload
Способ 2: Через CLI
# Добавить задачу
openclaw cron add \
--name "бэкап-базы" \
--schedule "0 2 * * *" \
--task "Создай дамп PostgreSQL базы openclaw_db, архивируй и загрузи на S3 в папку backups/$(date +%Y-%m-%d).sql.gz" \
--model gpt-4o-mini
# Список всех задач
openclaw cron list
# Запустить задачу вручную (для тестирования)
openclaw cron run бэкап-базы
# Остановить задачу
openclaw cron disable мониторинг-цен
# Удалить задачу
openclaw cron delete бэкап-базы
5 практических примеров
Пример 1: Утренний дайджест
Агент каждое утро собирает персонализированную сводку и отправляет в Telegram.
{
"name": "morning-digest",
"schedule": "0 7 * * 1-5",
"task": "1. Открой Telegram Desktop. 2. Найди важные непрочитанные сообщения за последние 12 часов в рабочих чатах. 3. Зайди на vc.ru и Forbes Russia, найди 3 новости про AI. 4. Составь сводку: непрочитанные сообщения (краткий пересказ), топ-3 новости, напоминание о встречах из Google Calendar на сегодня. 5. Отправь сводку в Telegram @stepannoanov.",
"model": "gpt-4o",
"timeout": "10m"
}
Пример 2: Мониторинг цен конкурентов
{
"name": "competitor-prices",
"schedule": "0 10,16 * * 1-5",
"task": "Открой браузер. Зайди на страницы из файла ~/monitoring/competitor-urls.txt (по одной). Для каждой страницы найди цену основного продукта. Запиши результат в ~/monitoring/prices.csv в формате: дата,время,сайт,цена. Если цена изменилась более чем на 10% по сравнению с последней записью — отправь письмо на alerts@company.com с деталями изменения.",
"model": "gpt-4o-mini",
"timeout": "15m",
"onError": "notify"
}
Пример 3: Автоматический SEO-отчёт
{
"name": "weekly-seo",
"schedule": "0 9 * * 1",
"task": "Зайди в Яндекс.Вебмастер. Скачай данные по показам и кликам за прошедшую неделю. Зайди в Google Search Console, скачай аналогичные данные. Создай Excel-файл ~/reports/seo-$(date +%Y-W%V).xlsx с таблицей: страница, показы Яндекс, клики Яндекс, показы Google, клики Google. Выдели топ-10 страниц по суммарному трафику. Отправь файл на почту analytics@company.com.",
"model": "gpt-4o",
"timeout": "20m"
}
Пример 4: Мониторинг доступности сервиса
{
"name": "uptime-check",
"schedule": "*/5 * * * *",
"task": "Проверь доступность URL из ~/monitoring/services.txt: отправь HTTP GET запрос к каждому, запиши статус (200/timeout/error) и время ответа в ~/monitoring/uptime.log. Если любой сервис недоступен более 2 проверок подряд — отправь уведомление в Telegram @oncall_bot с именем сервиса и временем последней успешной проверки.",
"model": "gpt-4o-mini",
"timeout": "1m",
"onError": "notify_critical"
}
Пример 5: Автоматическая публикация контента
{
"name": "content-publish",
"schedule": "0 11 * * 2,4",
"task": "Открой папку ~/content/ready/. Возьми первый неопубликованный файл .md. Прочитай его содержимое. Зайди в панель сайта infoclaw.ru/admin. Создай новую статью, заполни все поля из файла (заголовок, описание, теги, контент). Опубликуй. Перемести файл в ~/content/published/ с добавлением даты в имя. Отправь ссылку на опубликованную статью в Telegram.",
"model": "gpt-4o",
"timeout": "15m"
}
Обработка ошибок
Cron jobs работают без надзора, поэтому обработка ошибок критически важна.
Стратегии при ошибке
{
"onError": "notify"
}
| Значение | Поведение |
|---|---|
log | Записать в лог, продолжить |
notify | Отправить уведомление (Telegram/email) |
retry | Повторить через 5 минут (максимум 3 раза) |
notify_critical | Уведомление + пометить как критичное |
stop | Остановить все cron jobs до ручного перезапуска |
Настройка повторных попыток
{
"name": "важная-задача",
"schedule": "0 3 * * *",
"task": "...",
"retry": {
"maxAttempts": 3,
"delay": "10m",
"backoff": "exponential"
},
"onFinalFailure": "notify_critical"
}
Мониторинг выполнения
Просмотр статуса
# Статус всех задач
openclaw cron status
# История выполнения конкретной задачи
openclaw cron history мониторинг-цен --last 30
# Логи последнего выполнения
openclaw cron logs мониторинг-цен
Дашборд
openclaw cron dashboard
Открывает веб-интерфейс (по умолчанию localhost:3001) с визуализацией: когда выполнялась каждая задача, успех/ошибка, время выполнения, расход токенов.
Лучшие практики
Указывайте timeout. Без таймаута задача может зависнуть и блокировать ресурсы. Устанавливайте значение в 2-3 раза больше обычного времени выполнения.
Используйте дешёвые модели. Большинство cron-задач не требуют GPT-4o. GPT-4o mini или Gemini Flash справятся с мониторингом и простыми задачами, стоя в 10-20 раз дешевле.
Тестируйте перед активацией. Всегда запускайте openclaw cron run <name> вручную перед включением расписания. Убедитесь, что задача работает корректно.
Логируйте результаты в файлы. Задачи без записи результатов сложно отлаживать. Всегда указывайте куда сохранять выходные данные.
Разносите задачи по времени. Если несколько задач запланированы на одно время, они конкурируют за ресурсы. Разнесите на 5-10 минут.
Cron jobs хорошо работают в связке с мониторингом цен: как настроить отслеживание цен. Для постоянной работы агента нужна правильная инфраструктура: OpenClaw 24/7 на VPS.