Сегодня мы расскажем о достоинствах планировщика 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 очепятка?