0Pricing
DevOps Bootcamp · Урок

Планирование задач с Cron

Освойте утилиту «cron» для автоматического запуска скриптов и команд через заданные интервалы или в указанное время.

«Планирование задач с Cron» — бесплатный урок DevOps Bootcamp на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения DevOps Bootcamp, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс DevOps Bootcamp содержит 4 уроков всего.

Автоматизация задач с помощью Cron

Добро пожаловать в мир автоматизации! На этом уроке вы узнаете о cron — мощной утилите Linux, которая позволяет планировать автоматический запуск команд или скриптов в определённое время.

Представьте, что вы настроили ежедневное резервное копирование или ежечасную проверку системы, не прилагая никаких усилий, — именно этим и занимается cron!

Ваш личный файл crontab

У каждого пользователя системы Linux есть собственный файл crontab (таблица cron). В нём хранятся все запланированные задачи.

Чтобы изменить личный файл crontab, используйте команду crontab -e. Она откроет файл в используемом по умолчанию текстовом редакторе, где вы сможете добавить новые задания.

Запись crontab: поля времени

Запись crontab состоит из шести частей. Первые пять определяют, когда будет выполнена команда, и разделяются пробелами:

  • Минута: 0-59
  • Час: 0-23 (0 — полночь)
  • День месяца: 1-31
  • Месяц: 1-12 (или Jan-Dec)
  • День недели: 0-7 (0 или 7 — воскресенье, 1 — понедельник)

Запись crontab: команда

Шестая и последняя часть записи crontab — это команда или скрипт, который вы хотите выполнить.

Здесь особенно важно использовать абсолютные пути к командам и скриптам (например, /usr/bin/python, а не просто python). Задания cron выполняются в минимальном окружении, поэтому ваш обычный PATH может быть недоступен.

Специальные символы crontab

Чтобы сделать расписания гибкими, cron использует специальные символы:

  • * (звёздочка): соответствует всем возможным значениям (например, каждой минуте или каждому часу).
  • , (запятая): разделяет список значений (например, 1,15 означает 1-ю и 15-ю минуты).
  • - (дефис): задаёт диапазон значений (например, 9-17 означает часы с 9 до 17).
  • / (косая черта): задаёт шаг (например, */10 означает каждые 10 минут).

Предопределённые сокращения расписания

Для распространённых задач планирования cron предлагает удобные сокращения, заменяющие первые пять полей времени:

  • @reboot: выполняется один раз после перезагрузки системы;
  • @yearly (или @annually): выполняется один раз в год (0 0 1 1 *);
  • @monthly: выполняется один раз в месяц (0 0 1 * *);
  • @weekly: выполняется один раз в неделю (0 0 * * 0);
  • @daily (или @midnight): выполняется один раз в день (0 0 * * *);
  • @hourly: выполняется один раз в час (0 * * * *).

Практика: запланируйте простой скрипт

Создадим простой скрипт, который записывает приветствие в журнал, а затем настроим его запуск каждый день в 10:00 AM.

  1. Создайте скрипт (например, ~/greet.sh):
  2. Сделайте его исполняемым: chmod +x ~/greet.sh
  3. Добавьте его в crontab (crontab -e):
    0 10 * * * /home/user/greet.sh
    Эта запись означает: в 0-ю минуту 10-го часа (10 AM), каждый день месяца, каждого месяца и каждый день недели запускать /home/user/greet.sh.
#!/bin/bash
# This script logs a greeting to a temporary file.
echo "Hello from Cron! The time is $(date)" >> /tmp/cron_greeting.log

Управление заданиями cron

После добавления заданий cron вам потребуется управлять ими:

  • Чтобы просмотреть список текущих записей crontab: crontab -l
  • Чтобы удалить все записи crontab (соблюдайте крайнюю осторожность: отменить действие нельзя!): crontab -r

После внесения изменений всегда проверяйте свой crontab с помощью crontab -l, чтобы убедиться в правильности записей.

Переменные окружения cron

Помните, что задания cron выполняются в минимальном окружении. Поэтому в нём часто нет тех же переменных окружения (например, PATH), что и в интерактивной оболочке.

Если скрипт использует определённые команды, указывайте их абсолютные пути или задавайте необходимые переменные окружения непосредственно в начале файла crontab, например: PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin.

Задание на синтаксис crontab

Вам нужно настроить запуск скрипта /home/user/daily_report.sh в 9:15 AM каждый будний день (с понедельника по пятницу). Какая запись crontab правильная?

Итоги: освоение расписаний Cron

Отличная работа! Теперь вы освоили основы cron для планирования задач.

  • Вы узнали о файле crontab и о том, как изменять его с помощью crontab -e.
  • Вы разобрались в шести полях записи cron, включая поля времени и команду.
  • Вы изучили специальные символы и предопределённые сокращения для гибкого планирования.
  • Вы знаете, как управлять заданиями с помощью crontab -l и crontab -r.
  • Вы также узнали о важности абсолютных путей и переменных окружения в контексте cron.

А теперь отправляйтесь автоматизировать задачи!

Часто задаваемые вопросы

Урок «Планирование задач с Cron» бесплатный?

Да — полный текст урока «Планирование задач с Cron» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс DevOps Bootcamp, подпишись на CoddyKit PRO. Курс DevOps Bootcamp содержит 4 уроков всего.

Чему я научусь в уроке «Планирование задач с Cron»?

Освойте утилиту «cron» для автоматического запуска скриптов и команд через заданные интервалы или в указанное время. Ты практикуешь DevOps Bootcamp с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать DevOps Bootcamp?

Предыдущий опыт не требуется. DevOps Bootcamp на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.

Сколько времени занимает урок «Планирование задач с Cron»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке DevOps Bootcamp?

Да. Каждый урок DevOps Bootcamp включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Планирование задач с Cron
  2. Автоматизация системного администрирования
  3. Проект по расширенной разработке скриптов
  4. Автоматическая ротация и очистка журналов
← Назад к DevOps Bootcamp