Сегодня мы расскажем о достоинствах планировщика cron. Итак, сron — один из самых полезных инструментов в Linux или UNIX. Он используется для планирования задач, которые будут выполняться периодически. Кроме того, Вы можете настроить команды или сценарии, которые будут повторяться в заданное время. Служба (daemon) cron работает в фоновом режиме и постоянно проверяет файл /etc/crontab
, а также каталоги /etc/cron.*/
и /var/spool/cron/
.
Содержание:
- Команда crontab
- Типы файлов конфигурации cron
- Как установить, создать или отредактировать собственные задания cron
- Синтаксис crontab (описание полей)
- Как использовать операторы
- Подробнее о файле /etc/crontab и /etc/cron.d/*
- Сохранение списка заданий в файл
- Выводы
Команда crontab
crontab
— это команда Linux, позволяющая создавать, удалять и просматривать файл конфигурации для службы cron. Каждый пользователь может создать свой собственный файл задач, хранящийся в каталоге /var/spool/cron/crontabs
.
Важно: файл crontabs
не предназначен для прямого редактирования — редактируйте список задач только с помощью команды crontab
, чтобы планировщик cron работал корректно.
Типы файлов конфигурации сron
Существуют два типа файлов конфигурации службы cron:
- Системный файл
crontab
. Обычно используется системными службами и критическими заданиями, требующими привилегий root-доступа. Системные файлыcrontab
состоят из полей. Пять из них заполнены данными о времени, а в шестом поле указывается имя пользователя, от которого запускается команда. То естьcrontab
дает системе возможность запускать команды от имени разных пользователей. - Пользовательский
crontab
. Пользователь может установить свои собственные задания в планировщике сron, используя командуcrontab
. В этом случае, шестое поле — это команда для запуска. Следовательно, все команды будут выполняться от имени пользователя, который задал их в своем собственномcrontab
.
Как установить, создать или отредактировать собственные задания сron
Чтобы отредактировать файл crontab
, введите следующую команду в командной строке оболочки Unix / Linux:
Синтаксис crontab (описание полей)
Синтаксис:
Например:
Где цифры обозначают:
- 1: Минуты (0-59)
- 2: Часы (0-23)
- 3: День (0-31)
- 4: Месяц (0-12 [12 == Декабрь])
- 5: День недели (0-7 [7 или 0 == sunday])
/path/to/command
— имя скрипта или команды для выполнения по расписанию
Легко запоминаемый формат:
Пример:
Как использовать операторы
Оператор позволяет указать несколько значений в поле. Существуют четыре оператора:
- Звездочка (*): этот оператор задает все возможные значения для поля. Например, звездочка в поле «Часы» будет эквивалентна каждому часу, а звездочка в поле месяца будет эквивалентна каждому месяцу и т.д.
- Запятая (,): Этот оператор задает список значений, например: «1,5,10,15,20,25».
- Тире (-): Этот оператор задает диапазон значений, например: «5-15» дней, что эквивалентно набору «5,6,7,8,9 … …, 13,14,15», при использования оператора «Запятая».
- Слеш (/): этот оператор задает значение шага, например: «0-23 /» можно использовать в поле часов, чтобы указывать выполнение команды каждый час. Шаги также разрешены после звездочки, поэтому, если Вы хотите выполнять что-то каждые два часа, просто используйте «*/2».
Вместо первых пяти полей Вы можете использовать любую из восьми специальных строк. Планировщик cron позволяет такую настройку. Это не только сэкономит Ваше время, но и улучшит читаемость.
Специальная строка | Значение |
@reboot | Запускается только один раз при запуске. |
@yearly | Запускается раз в год, «0 0 1 1 *». |
@annually | Такое же, как у @yearly |
@monthly | Запускается раз в месяц, «0 0 1 * *». |
@weekly | Выполняется раз в неделю, «0 0 * * 0». |
@daily | Выполняется один раз в день, «0 0 * * *». |
@midnight | Такое же, как у @daily. |
@hourly |
Запускается один раз в час, «0 * * * *». |
Пример:
Подробнее о файле /etc/crontab и /etc/cron.d/*
/etc/crontab
— это файл crontab
системы. Обычно используется только пользователем root или для настройки системных задач. Обычные пользователи должны использовать команду crontab
для установки и редактирования своих заданий.
/var/spool/cron/ или /var/cron/tabs/
— это каталог для личных файлов пользователя crontab
.
Типичные записи файла /etc/crontab:
Первым делом необходимо определить оболочку для выполнения задач. Если указатель оболочки отсутствует — cron будет использовать значение по умолчанию (а именно — sh
). Если переменная PATH
не указана — расположение файлов будет считаться абсолютным. Если перемененная HOME
не указана — cron будет использовать для работы домашний каталог.
Кроме того, cron считывает файлы в каталоге /etc/cron.d/
. Обычно это файлы демона системы, такие как sa-update
или sysstat
. В качестве пользователя root, для настройки заданий cron, Вы можете использовать каталоги которые указаны ниже. Помимо этого, здесь Вы можете напрямую запускать свои скрипты. Команда run-parts
запускает скрипты или программы в каталоге через файл /etc/crontab
:
Каталог | Описание |
/etc/cron.d/ | Поместите в эту директиву все скрипты и вызовите их из файла /etc/crontab |
/etc/cron.daily/ | Запуск всех скриптов один раз в день |
/etc/cron.hourly/ | Запуск всех скриптов один раз в час |
/etc/cron.monthly/ | Запуск всех скриптов один раз в месяц |
/etc/cron.weekly/ | Запуск всех скриптов один раз в неделю |
Сохранение списка заданий в файл
Сохранить список заданий можно с помощью следующей команды:
Выводы
Спасибо за время, уделенное на прочтение статьи! Теперь Вы знаете о том, как добавлять и настраивать задания в Linux с помощью планировщика cron. Кроме того, Вы научились пользоваться синтаксисом и операторами crontab
. Надеемся, эти знания и навыки будут полезны как для личного пользования, так и для системного администрирования 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.
2 комментария. Оставить новый
Если все задания нужно добавлять через crontab -e, то как тогда добавлять задания из скрипта?
*/5 * * * * /root/backupscript.sh очепятка?