Планирование задач с Cron
Освойте утилиту «cron» для автоматического запуска скриптов и команд через заданные интервалы или в указанное время.
«Планирование задач с Cron» — бесплатный урок Linux Command Line & Bash Scripting Mastery на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Linux Command Line & Bash Scripting Mastery, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Linux Command Line & Bash Scripting Mastery содержит 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.
- Создайте скрипт (например,
~/greet.sh): - Сделайте его исполняемым:
chmod +x ~/greet.sh - Добавьте его в 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) и разблокировать остальной курс Linux Command Line & Bash Scripting Mastery, подпишись на CoddyKit PRO. Курс Linux Command Line & Bash Scripting Mastery содержит 4 уроков всего.
Чему я научусь в уроке «Планирование задач с Cron»?
Освойте утилиту «cron» для автоматического запуска скриптов и команд через заданные интервалы или в указанное время. Ты практикуешь Linux Command Line & Bash Scripting Mastery с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Linux Command Line & Bash Scripting Mastery?
Предыдущий опыт не требуется. Linux Command Line & Bash Scripting Mastery на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.
Сколько времени занимает урок «Планирование задач с Cron»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Linux Command Line & Bash Scripting Mastery?
Да. Каждый урок Linux Command Line & Bash Scripting Mastery включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Планирование задач с Cron
- Автоматизация системного администрирования
- Проект по расширенной разработке скриптов
- Автоматическая ротация и очистка журналов