TGViewer
METANIT.COM METANIT.COM @devnull22 · 5.83K subscribers
Post #3072 1.74K
Работа с Cron
(продолжение предыдущего поста)

1. Что такое Cron и Crontab?

Cron — это планировщик задач в Linux, который автоматически выполняет скрипты или команды по расписанию. Crontab — это файл с расписанием задач (таблицы заданий), доступный каждому пользователю системы.
Cron позволяет автоматизировать выполнение задач с высокой гибкостью: от ежеминутных проверок до ежегодных операций. Главное — правильно настроить расписание с помощью синтаксиса и операторов, а также использовать удобные макросы для стандартных интервалов.


2. Синтаксис Cron-выражений

Cron-выражение состоит из 5 полей, определяющих расписание выполнения задачи:

- Минуты (0–59);
- Часы (0–23);
- День месяца (1–31);
- Месяц (1–12);
- День недели (0–6, где 0 = воскресенье, 6 = суббота).

Формат записи:
* * * * * команда
(где * — любое значение, команда — выполняемая команда/скрипт).

Примеры из изображения:
- # every Mon midnight → 0 0 * * 1 command (выполняется в полночь по понедельникам);
- # everyday 05:04 AM → 4 5 * * * command (каждый день в 05:04 утра);
- # every Sun 12:05 PM → 5 12 * * 0 command (каждое воскресенье в 12:05).

3. Специальные сокращения (макросы)

Для удобства используются макросы — короткие обозначения стандартных расписаний:
- @reboot — при загрузке системы;
- @hourly — каждый час;
- @daily (или @midnight) — ежедневно в полночь;
- @weekly — каждую неделю;
- @monthly — каждый месяц;
- @yearly (или @annually) — каждый год.

Примеры:
- @reboot command — запуск команды при старте системы;
- @hourly command — выполнение команды каждый час;
- @yearly command — выполнение команды раз в год.

4. Операторы в Cron

В Cron используются специальные операторы для настройки расписаний:
- `*` — все возможные значения (например, * * * * * — каждую минуту каждого часа);
- `,` — перечисление значений (например, 0 8,12,16 * * * command — в 8:00, 12:00 и 16:00);
- `-` — диапазон значений (например, 0 9-17 * * 1-5 command — с 9:00 до 17:00 по будням);
- `/` — шаг (например, */5 * * * * command — каждые 5 минут);
- `L` — последнее значение (используется в полях «день месяца» и «день недели»);
- `W` — ближайший будний день (например, 15 10 * * 5W — в 10:15 в ближайшую пятницу);
- `?` — игнорирование поля (используется в «день месяца» или «день недели»).

5. Команды для работы с Crontab

Для управления заданиями Cron используются команды:
- $ crontab -e — редактирование/создание файла crontab;
- $ crontab — просмотр текущего crontab-файла;
- $ crontab -r — удаление crontab-файла;
- $ crontab -u username -l — просмотр crontab другого пользователя;
- $ crontab -u username -e — редактирование crontab другого пользователя;
- $ echo "username" > /etc/cron.allow — разрешение пользователю использовать cron;
- $ echo "username" > /etc/cron.deny — запрет пользователю использовать cron;
- $ crontab -v — показ времени последнего изменения crontab.

6. Примеры расписаний из изображения

- Каждые 6 часов: 0 */6 * * * command;
- Каждые 5 минут: */5 * * * * command;
- Ежемесячно: 0 0 1 * * command (1-го числа каждого месяца в 00:00);
- Раз в год: @yearly command или @annually command.

7. Практические шаги

1. Откройте файл crontab: $ crontab -e.
2. Добавьте расписание и команду (используя синтаксис из п. 2–4).
3. Сохраните изменения (например, в редакторе nano — Ctrl+O, затем Ctrl+X).
4. Проверьте список задач: $ crontab -l.
5. При необходимости удалите задачи: $ crontab -r.
Telegram METANIT.COM Работа с Cron (продолжение в следующем посте)
  • 👍 9
  • ❤ 4
  • 🔥 2
  • 👏 2
More from @devnull22
  1. Mar 19, 2026Добавил в руководство по JavaScript главу про работу с датами и временем с помощью Tempora…
  2. Mar 19, 2026Роскомнадзор перестал полностью справляться с блокировками в интернете Роскомнадзор (РКН)…
  3. Mar 18, 2026Минцифры опубликовало законопроект о государственном регулировании ИИ. Закон должен начать…
  4. Mar 18, 2026Microsoft призвала разработчиков создавать ИИ-приложения в Electron на Windows 11 Microsof…
  5. Mar 18, 2026Oracle анонсировала проект Detroit, который будет развиваться в составе OpenJDK и нацелен…
  6. Mar 17, 2026Вышла новая версия платформы Java - JDK 26. JDK 26 — краткосрочная версия с поддержкой Pre…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →