Документация
Быстрый старт + описание функций по разделам и устройствам (постоянно дополняется)
Планировщик задач (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.