cron в Linux: примеры, синтаксис и отладкаПланировщик cron — это встроенный в Linux инструмент, который позволяет автоматизировать запуск скриптов, задач и команд по расписанию. Он идеально подходит для регулярного бэкапа, очистки логов, обновлений, мониторинга и других рутинных операций на сервере.
Если вы управляете собственным VDS или администрируете Linux-сервер, знание cron — один из базовых и жизненно важных навыков.
В этой статье вы узнаете:
croncron и crontab?cron — это фоновый демон, который запускает команды по расписанию.crontab — это таблица (cron table), где описываются задания, которые нужно выполнять.Каждый пользователь в системе может иметь свою crontab.
crontab -e
Если запускаете в первый раз, система предложит выбрать редактор — обычно это nano или vim.
Чтобы просмотреть текущие задания:
crontab -l
Чтобы удалить все задания:
crontab -r
crontabКаждая строка задания состоит из 5 полей времени + команды:
* * * * * команда
│ │ │ │ │
│ │ │ │ └──── День недели (0 - воскресенье, 1 - понедельник, ..., 6 - суббота)
│ │ │ └────── Месяц (1–12)
│ │ └──────── День месяца (1–31)
│ └────────── Часы (0–23)
└──────────── Минуты (0–59)
| Расписание | Значение |
|---|---|
* * * * * | Каждую минуту |
0 * * * * | Каждый час, в 00 минут |
0 0 * * * | Каждый день в полночь |
0 3 * * 1 | Каждый понедельник в 3:00 |
*/15 * * * * | Каждые 15 минут |
0 9-17 * * 1-5 | С 9 до 17 в будни, каждый час |
? Можно использовать запятые, тире и шаги:
- 1,15 — 1-е и 15-е число
- 1-5 — от понедельника до пятницы
- */5 — каждые 5 минут
0 2 * * * /usr/local/bin/backup.sh
0 */6 * * * rm -rf /tmp/*
30 7 * * * /usr/bin/php /var/www/html/report.php | mail -s "Ежедневный отчёт" you@example.com
*/10 * * * * curl -Is https://example.com | head -n 1 >> /var/log/site-check.log
В Debian/Ubuntu:
/var/log/syslog
grep CRON /var/log/syslog
В CentOS/AlmaLinux:
/var/log/cron
По умолчанию cron отправляет вывод заданий по email владельцу.
Чтобы указать email явно:
MAILTO="you@example.com"
Добавьте эту строку в начало crontab.
0 2 * * * /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1
>> — дописывает в файл2>&1 — объединяет stderr и stdoutКоманда доступна только root:
crontab -u username -e
| Файл | Описание |
|---|---|
/etc/crontab | Системная таблица (с полем USER) |
/etc/cron.d/ | Отдельные cron-файлы |
/etc/cron.daily//hourly//weekly//monthly/ |
Скрипты, выполняемые по расписанию anacron |
Пример строки из /etc/crontab:
0 5 * * * root /usr/bin/apt update
cron — мощный и надёжный инструмент для автоматизации задач на Linux-сервере. Он позволяет упростить обслуживание, улучшить безопасность, своевременно запускать резервные копии и мониторинг.
Используйте cron, если хотите: