Назад к блогу
23 мая 2026Руководства

Как настроить cron-задачи на Linux-сервере

Синтаксис cron, редактирование crontab, примеры расписания и логирование на VPS.

Как настроить cron-задачи на Linux-сервере

Cron — стандартный планировщик Linux для запуска скриптов по расписанию: резервные копии, очистка кэша, проверка сертификатов. Руководство по использованию cron на сервере Hiddence.

Синтаксис cron

В каждой строке пять полей времени и команда:

bash
# ┌──────── минута (0-59)
# │ ┌────── час (0-23)
# │ │ ┌──── день месяца (1-31)
# │ │ │ ┌── месяц (1-12)
# │ │ │ │ ┌─ день недели (0-7, 0 и 7 = воскресенье)
# │ │ │ │ │
# * * * * * команда

# Каждый день в 3:00:
0 3 * * * /usr/local/bin/backup.sh

# Каждые 15 минут:
*/15 * * * * /usr/local/bin/check.sh

Редактирование crontab

crontab -e для текущего пользователя. Системные задачи — через root:

bash
# Crontab пользователя
crontab -e

# Crontab root
sudo crontab -e

# Список задач
crontab -l
sudo crontab -l

Частые примеры

  • 0 2 * * * — ежедневное резервное копирование в 2:00
  • 0 */6 * * * — каждые 6 часов
  • 0 0 * * 0 — каждое воскресенье в полночь
  • */5 * * * * — каждые 5 минут (осторожно с нагрузкой)
  • @reboot /path/script.sh — после перезагрузки
  • @daily /usr/bin/certbot renew --quiet — проверка SSL

Логи и отладка

Перенаправляйте вывод в файл, чтобы видеть ошибки:

bash
0 3 * * * /usr/local/bin/backup.sh >> /var/log/backup-cron.log 2>&1

# Логи cron в системе:
grep CRON /var/log/syslog   # Ubuntu
grep CRON /var/log/cron      # CentOS

Советы

  • Используйте абсолютные пути к скриптам
  • Проверяйте скрипт вручную перед добавлением в cron
  • MAILTO=email в crontab для уведомлений об ошибках
  • Для сложных сценариев рассмотрите systemd timers
  • Не запускайте тяжёлые задачи каждую минуту