Главная
|
Услуги и цены
VDS
Выделенные серверы
Размещение сервера
|
F.A.Q
|
О компании
|

Планирование задач с cron в Linux: примеры, синтаксис и отладка

  • Что такое cron и crontab
  • Как открыть crontab
  • Синтаксис crontab
  • Примеры cron-задач
  • Как отлаживать cron-задачи
  • Расширенные возможности
  • Вывод

Планировщик cron — это встроенный в Linux инструмент, который позволяет автоматизировать запуск скриптов, задач и команд по расписанию. Он идеально подходит для регулярного бэкапа, очистки логов, обновлений, мониторинга и других рутинных операций на сервере.

Если вы управляете собственным VDS или администрируете Linux-сервер, знание cron — один из базовых и жизненно важных навыков.

В этой статье вы узнаете:

  • Как работает cron
  • Как правильно писать расписание (crontab-синтаксис)
  • Примеры команд
  • Как отлаживать cron-задачи
  • Полезные фишки и советы

Что такое cron и crontab?

  • cron — это фоновый демон, который запускает команды по расписанию.
  • crontab — это таблица (cron table), где описываются задания, которые нужно выполнять.

Каждый пользователь в системе может иметь свою crontab.

Как открыть 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 минут

Примеры cron-задач

1. Автоматический бэкап

0 2 * * * /usr/local/bin/backup.sh

2. Очистка временных файлов

0 */6 * * * rm -rf /tmp/*

3. Отправка отчёта на email

30 7 * * * /usr/bin/php /var/www/html/report.php | mail -s "Ежедневный отчёт" you@example.com

4. Проверка доступности сайта

*/10 * * * * curl -Is https://example.com | head -n 1 >> /var/log/site-check.log

Как отлаживать cron-задачи

1. Логи выполнения

В Debian/Ubuntu:

/var/log/syslog
grep CRON /var/log/syslog

В CentOS/AlmaLinux:

/var/log/cron

2. Отладка через email

По умолчанию cron отправляет вывод заданий по email владельцу.

Чтобы указать email явно:

MAILTO="you@example.com"

Добавьте эту строку в начало crontab.

3. Перенаправление вывода в лог

0 2 * * * /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1
  • >> — дописывает в файл
  • 2>&1 — объединяет stderr и stdout

Расширенные возможности

Crontab другого пользователя

Команда доступна только root:

crontab -u username -e

System-wide cron-файлы

ФайлОписание
/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, если хотите:

  • Экономить время на рутинных задачах
  • Повысить стабильность работы своего VDS
  • Избежать человеческих ошибок
logo
© 2022 62yun
Все права защищены
vk.com/62yuncom
support@62yun.ru
logo
vk.com/62yuncom
support@62yun.ru
Услуги
VDS Выделенные серверы
Полезное
F.A.Q О компании Политика конфиденциальности Оферта
Способы оплаты
wechatpay visa mastercard
MirAccept
Партнеры
25port
© 2022 62yun Все права защищены
ВВЕРХ