Cron — утилита для планирования операций в Unix-подобных операционных системах, включая Linux. Она позволяет пользователям создавать задания cron, которые будут выполняться автоматически в указанное время. Чаще всего инструмент Cron используют для обслуживания операционной системы, создания резервных копий и других административных задач.
В этой статье мы расскажем, как использовать демон Cron в ОС Linux.
Содержание:
- Открытие таблицы заданий cron
- Синтаксис заданий cron
- Примеры создания заданий cron
- Специальные строки представления времени в сrontab
- Просмотр и удаление заданий сron
- Выводы
Открытие таблицы заданий cron
Таблица cron (или crontab) — системный файл, в котором пользователи могут создавать задания cron. Каждая строка в crontab представляет собой отдельное задание с информацией о расписании и командой для выполнения.
Чтобы открыть таблицу cron, примените следующую команду:
Синтаксис заданий cron
Задания cron имеют свой синтаксис, который выглядит следующим образом:
Где:
MIN
— указывает минуту часа, когда будет выполняться команда (диапазон:0-59
);HOUR
— указывает час дня (диапазон:0-23
);DOM
— означает день месяца (диапазон:1-31
);MON
— указывает месяц года (диапазон:1-12
илиJAN-DEC
);DOW
— означает день недели (диапазон:0-7
илиSUN-SAT
);command-to-execute
— означает команду или скрипт, который нужно выполнять в указанное время.
Читайте также: Настройка планировщика cron в Linux / UNIX.
Также для указания времени выполнения заданий cron можно применять специальные операторы:
*
(звездочка) — означает все возможные значения для данного поля;,
(запятая) — используется для перечисления значений времени;-
(дефис) — используется для указания диапазона значений;/
(слеш) — означает, что команда будет выполняться с заданным шагом.
Примеры создания заданий Cron
Допустим, нам нужно каждый день в полночь создавать резервную копию каталога /home/user/documents
в /backup/documents
. Для этого воспользуемся утилитой rsync
и запишем в crontab следующее задание:
Также каждое воскресенье в 2 часа ночи мы хотим очищать содержимое каталога /tmp
. Чтобы решить эту задачу, применим такое задание cron:
Также в нашей ОС есть скрипт /home/user/scripts/script.py
. Нам нужно запускать его каждые 15 минут. Для этого запишем в таблицу cron следующую строку:
Читайте также: Cron или Anacron: как планировать выполнение задач с помощью Anacron в Linux.
Задание cron, показанное ниже, позволит запускать сценарий обслуживания ОС maintenance.sh
в час ночи каждый день с 1 по 7 число каждого месяца:
Напоследок создадим задание cron, которое будет генерировать отчет с помощью скрипта generate_report.sh
в 2 часа ночи каждый день в январе, марте, мае и июле:
Специальные строки представления времени в сrontab
Специальные строки в сrontab — ярлыки, которые позволяют планировать операции без необходимости вручную указывать каждое отдельное поле времени и даты. Вот некоторые из них:
@hourly
— выполняет задание каждый час (0 * * * *
);@daily
или@midnight
— раз в день в полночь (0 0 * * *
);@weekly
— раз в неделю в полночь в воскресенье (0 0 * * * 0
);@monthly
— один раз в месяц в полночь 1-го числа (0 0 1 * * *
);@yearly
или@annually
— раз в год в полночь 1 января (0 0 1 1 *
);@reboot
— один раз при каждой перезагрузке ОС.
Например, нам нужно:
- сохранять резервную копию каталога
/home/user/documents
в/backup/documents
каждый день в полночь; - выполнять Python-скрипт
script.py
из каталога/home/user/scripts
каждый час; - запускать при каждой перезагрузке ОС сценарий
/path/to/your/task.sh
.
Для этого запишем в таблицу cron следующие строки:
Читайте также: 11 примеров настройки выполнения регулярных задач с помощью Cron в Linux.
Просмотр и удаление заданий сron
Чтобы вывести в окно терминала содержимое сrontab, выполните в командной строке:
А для удаления всех заданий cron воспользуйтесь командой crontab
с опцией -r
:
Выводы
Мы рассмотрели базовый синтаксис заданий cron в операционной системе Linux. Показанные примеры помогут Вам автоматизировать выполнение рутинных операций для обслуживания ОС, мониторинга потребления системных ресурсов, обеспечения безопасности и так далее.
Спасибо за время, уделенное прочтению статьи!
Если возникли вопросы — задавайте их в комментариях.
Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!
Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco, курсы по кибербезопасности, полный курс по кибербезопасности, курсы DevNet / DevOps (программируемые системы) от Академии Cisco, курсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).
Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!
- Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
- Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
- Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
- Проведем вечерние онлайн-лекции на нашей платформе.
- Согласуем с вами удобное время для практик.
- Если хотите индивидуальный график — обсудим и реализуем.
- Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
- Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
- отредактировать или создать с нуля резюме;
- подготовиться к техническим интервью;
- подготовиться к конкурсу на понравившуюся вакансию;
- устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.