Документация

Быстрый старт + описание функций по разделам и устройствам (постоянно дополняется)

Планировщик задач (Cron)

В этой статье описано управление задачами по расписанию на целевом сервере.

Сначала разберёмся: что такое Cron

Cron — встроенный в Linux инструмент «планирования по расписанию». С его помощью можно «каждую ночь в 3 часа автоматически копировать базу данных», «раз в час чистить логи», «каждый понедельник перезапускать сервис» — всё выполняется само в назначенное время, без дежурного.

Краткое описание

Просмотр, добавление и удаление задач Cron на целевом сервере.

Когда пригодится

  • Резервное копирование баз данных и очистка логов по расписанию
  • Запуск скриптов мониторинга по расписанию
  • Перезапуск сервисов и обновление сертификатов по расписанию

Как пользоваться

Откройте у нужного сервера «Панель управления системой → Планировщик задач» — увидите все текущие задачи Cron этого сервера.

Добавление задачи

Заполните выражение Cron и команду для выполнения:

ПолеОписание
Выражение времени5 полей, например 0 3 * * * (каждую ночь в 3:00)
Командаshell-команда для выполнения

Формат выражения Cron (минуты часы день месяц день-недели):

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

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

ВыражениеЗначение
*/5 * * * *каждые 5 минут
0 * * * *каждый час
0 3 * * *каждую ночь в 3:00
0 3 * * 1каждый понедельник в 3:00
0 3 1 * *1-го числа каждого месяца в 3:00
0 3 * * 0каждое воскресенье в 3:00
30 2 * * *каждую ночь в 2:30

Примеры полезных команд:

# Каждую ночь в 3 часа — резервная копия базы данных (пример)
0 3 * * * docker exec sshe-mysql mariadb-dump -uroot -p'<пароль>' имя_базы > /opt/backup/db-$(date +\%F).sql

# Раз в 6 часов — очистка временных файлов
0 */6 * * * find /tmp -type f -mtime +7 -delete

# Каждый понедельник в 4 часа — перезапуск сервиса
0 4 * * 1 systemctl restart my-app

Примечания

1. Задачи Cron выполняются от имени текущего пользователя целевого сервера — убедитесь, что у него есть права на выполнение команды.

2. В командах рекомендуется указывать абсолютные пути (в окружении Cron мало переменных, по относительному пути программу можно не найти).

3. Символ % в команде нужно экранировать как \% (Cron считает % спецсимволом).

4. Удаление задачи Cron действует сразу.

5. Для изменения системного Cron (/etc/crontab) может потребоваться работа вне панели: по умолчанию панель управляет пользовательским crontab -l.