Настройка cron centos 7

Обновлено: 21.11.2024

Cron — это демон планирования заданий на основе времени, используемый в Unix-подобных операционных системах, включая дистрибутивы Linux. Cron работает в фоновом режиме, и задачи, запланированные с помощью cron, называемые «заданиями cron», выполняются автоматически, что делает cron полезным для автоматизации задач, связанных с обслуживанием.

В этом руководстве представлен обзор того, как планировать задачи с помощью специального синтаксиса cron. В нем также рассматриваются несколько сокращений, которые можно использовать для упрощения написания и понимания расписания работы.

Предпосылки

Для выполнения этого руководства вам потребуется доступ к компьютеру с CentOS 8. Это может быть ваша локальная машина, виртуальная машина или виртуальный частный сервер.

Независимо от того, какой компьютер вы используете для выполнения этого руководства, на нем должен быть настроен пользователь без полномочий root с правами администратора. Чтобы настроить это, следуйте нашему руководству по начальной настройке сервера для CentOS 8.

Установка Крона

Почти в каждом дистрибутиве Linux по умолчанию установлена ​​та или иная форма cron. Однако, если вы используете компьютер с CentOS, на котором не установлен cron, вы можете установить его с помощью dnf .

Перед установкой cron на компьютер с CentOS обновите локальный индекс пакетов компьютера:

Затем установите демон cron с помощью следующей команды:

Эта команда предложит вам подтвердить, что вы хотите установить пакет crontabs и его зависимости. Для этого нажмите y, а затем ENTER .

Это установит cron в вашей системе, но вам нужно будет запустить демон вручную. Вам также необходимо убедиться, что он настроен на запуск при каждой загрузке сервера. Вы можете выполнить оба этих действия с помощью команды systemctl.

Чтобы запустить демон cron, выполните следующую команду:

Чтобы запустить cron при каждом запуске сервера, введите:

После этого в вашей системе будет установлен cron, и вы сможете начать планировать задания.

Понимание того, как работает Cron

Задания Cron записываются и управляются в специальном файле, известном как crontab . У каждого профиля пользователя в системе может быть свой собственный crontab, где они могут планировать задания, которые хранятся в /var/spool/cron/ .

Чтобы запланировать задание, вам просто нужно открыть свой crontab для редактирования и добавить задание, записанное в виде выражения cron. Синтаксис для выражений cron можно разбить на два элемента: расписание и команду для запуска.

Командой может быть практически любая команда, которую вы обычно запускаете в командной строке. Компонент расписания синтаксиса разбит на 5 различных полей, которые записываются в следующем порядке:

Поле Допустимые значения
минуты 0-59
час 0-23
День месяца 1-31
месяц 1-12 или JAN-DEC
День недели 0-6 или SUN-SAT

Вместе задачи, запланированные в crontab, структурированы следующим образом:

Есть также несколько специальных символов, которые можно включить в компонент расписания выражения cron, чтобы упростить планирование:

  • * : В выражениях cron звездочка — это переменная с подстановочным знаком, представляющая «все». Таким образом, задача запланирована с * * * * * . будет запускаться каждую минуту каждого часа каждого дня каждого месяца.
  • , : Запятые разбивают значения расписания, образуя список. Если вы хотите, чтобы задача выполнялась в начале и середине каждого часа, а не записывала две отдельные задачи (например, 0 * * * * . и 30 * * * * . ), вы могли бы добиться той же функциональности с помощью одной ( 0,30 * * * * . ).
  • - : дефис представляет диапазон значений в поле расписания. Вместо 30 отдельных запланированных задач для команды, которую вы хотите запускать в течение первых 30 минут каждого часа (например, 0 * * * * . , 1 * * * * . , 2 * * * * . , и т. д.) , вы можете просто запланировать его как 0-29 * * * * . .
  • / : вы можете использовать косую черту со звездочкой, чтобы указать значение шага. Например, вместо того, чтобы записывать восемь отдельных задач cron для запуска команды каждые три часа (например, 0 0 * * * . , 0 3 * * * . , 0 6 * * * . , и т. д.), вы можно запланировать его запуск следующим образом: 0 */3 * * * . .

Примечание. Вы не можете указывать значения шага произвольно; вы можете использовать только целые числа, которые равномерно делятся на диапазон, разрешенный рассматриваемым полем. Например, в поле «часы» после косой черты можно поставить только цифры 1 , 2 , 3 , 4 , 6 , 8 или 12 .

Вот еще несколько примеров использования компонента планирования cron:

  • * * * * * — запускать команду каждую минуту.
  • 12 * * * * — запускать команду через 12 минут после каждого часа.
  • 0,15,30,45 * * * * — запускать команду каждые 15 минут.
  • */15 * * * * — запускать команду каждые 15 минут.
  • 0 4 * * * — запускать команду каждый день в 4:00.
  • 0 4 * * 2-4 — запускать команду каждый вторник, среду и четверг в 4:00.
  • 20,40 */8 * 7-12 * — запускать команду на 20-й и 40-й минуте каждого 8-го часа каждый день последних 6 месяцев года.

Если вы сочтете это запутанным или вам нужна помощь в написании расписаний для ваших собственных задач cron, Cronitor предоставляет удобный редактор выражений расписания cron под названием «Crontab Guru», который вы можете использовать, чтобы проверить, действительны ли ваши расписания cron. .

Управление Crontab

Как только вы определились с расписанием и узнали задание, которое хотите запустить, вам нужно поместить его туда, где ваш демон сможет его прочитать.

Как упоминалось ранее, crontab – это специальный файл, в котором хранится расписание заданий, которые будут запускаться cron. Однако они не предназначены для непосредственного редактирования. Вместо этого рекомендуется использовать команду crontab. Это позволяет вам редактировать crontab вашего профиля пользователя без изменения ваших привилегий с помощью sudo. Команда crontab также сообщит вам, если у вас есть синтаксические ошибки в crontab, при непосредственном редактировании этого не произойдет.

Вы можете редактировать свой crontab с помощью следующей команды:

Это откроет ваш crontab в текстовом редакторе по умолчанию вашего профиля пользователя.

Примечание. На новых серверах CentOS 8 команда crontab -e по умолчанию открывает crontab вашего пользователя с помощью vi. vi — чрезвычайно мощный и гибкий текстовый редактор, но он может показаться несколько бестолковым для пользователей, не имеющих опыта работы с ним.

Если вы хотите использовать более удобный текстовый редактор в качестве редактора crontab по умолчанию, вы можете установить и настроить nano как таковой.

Для этого установите nano с помощью dnf:

При появлении запроса нажмите y, а затем ENTER, чтобы подтвердить, что вы хотите установить nano .

Чтобы установить nano в качестве визуального редактора по умолчанию для вашего профиля пользователя, откройте файл .bash_profile для редактирования. Теперь, когда вы установили его, вы можете сделать это с помощью nano :

Внизу файла добавьте следующую строку:

Это задает для переменной среды VISUAL значение nano . VISUAL — это переменная среды Unix, которую многие программы, включая crontab, вызывают для редактирования файла. После добавления этой строки сохраните и закройте файл, нажав CTRL + X , Y , затем ENTER .

Затем перезагрузите .bash_profile, чтобы оболочка приняла новое изменение:

В редакторе вы можете ввести свое расписание для каждого задания в новой строке. В противном случае вы можете сохранить и закрыть crontab на данный момент. Если вы открыли свой crontab с помощью vi , текстового редактора CentOS 8 по умолчанию, вы можете сделать это, нажав ESC, чтобы убедиться, что вы находитесь в командном режиме vi, затем введите :x и нажмите ENTER .

Обратите внимание, что в системах Linux в каталоге /etc/ хранится еще один файл crontab. Это общесистемный crontab, в котором есть дополнительное поле, для которого профиль пользователя должен выполнять каждое задание cron. В этом руководстве основное внимание уделяется пользовательским crontab, но если вы хотите отредактировать общесистемный crontab, вы можете сделать это с помощью следующей команды:

Если вы хотите просмотреть содержимое своего crontab, но не редактировать его, вы можете использовать следующую команду:

Вы можете стереть свой crontab с помощью следующей команды:

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

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

При появлении запроса необходимо ввести y, чтобы удалить crontab, или n, чтобы отменить удаление.

Управление выводом задания Cron

Поскольку задания cron выполняются в фоновом режиме, не всегда очевидно, что они выполняются успешно. Теперь, когда вы знаете, как использовать команду crontab и как планировать задания cron, вы можете начать экспериментировать с различными способами перенаправления вывода заданий cron, чтобы отслеживать их успешное выполнение.

Если на вашем сервере установлен и правильно настроен агент передачи почты, например Sendmail, вы можете отправлять выходные данные задач cron на адрес электронной почты, связанный с вашим профилем пользователя Linux. Вы также можете указать адрес электронной почты вручную, указав параметр MAILTO в верхней части crontab.

Например, вы можете добавить следующие строки в crontab. К ним относятся оператор MAILTO, за которым следует пример адреса электронной почты, директива SHELL, указывающая на запускаемую оболочку (bash в этом примере), директива HOME, указывающая путь, по которому следует искать двоичный файл cron, и одна задача cron:

Это конкретное задание вернет «Выполнять эту команду каждую минуту», и эти выходные данные будут отправляться по электронной почте каждую минуту на адрес электронной почты, указанный после директивы MAILTO.

Вы также можете перенаправить выходные данные задачи cron в файл журнала или в пустое место, чтобы предотвратить получение электронного письма с выходными данными.

Чтобы добавить выходные данные запланированной команды в файл журнала, добавьте >> в конец команды, а затем имя и расположение файла журнала по вашему выбору, например:

Допустим, вы хотите использовать cron для запуска скрипта, но оставить его в фоновом режиме. Для этого вы можете перенаправить вывод скрипта в пустое место, например /dev/null, которое немедленно удалит все записанные в него данные. Например, следующее задание cron выполняет сценарий PHP и запускает его в фоновом режиме:

Это задание cron также перенаправляет стандартную ошибку, представленную цифрой 2, на стандартный вывод ( >&1 ). Поскольку стандартный вывод уже перенаправляется на /dev/null , это, по сути, позволяет сценарию работать без вывода сообщений. Даже если crontab содержит оператор MAILTO, выходные данные команды не будут отправлены на указанный адрес электронной почты.

Ограничение доступа

Вы можете управлять тем, каким пользователям разрешено использовать команду crontab, с помощью файлов cron.allow и cron.deny, которые хранятся в каталоге /etc/. Если файл cron.deny существует, любому пользователю, указанному в нем, будет запрещено редактировать свой crontab. Если cron.allow существует, только пользователи, указанные в нем, смогут редактировать свои crontab. Если оба файла существуют и в каждом из них указан один и тот же пользователь, файл cron.allow переопределит файл cron.deny, и пользователь сможет редактировать свой crontab.

Например, чтобы запретить доступ всем пользователям, а затем предоставить доступ пользователю ishmael, можно использовать следующую последовательность команд:

Во-первых, мы блокируем всех пользователей, добавляя ВСЕ в файл cron.deny. Затем, добавив имя пользователя в файл cron.allow, мы даем профилю пользователя ishmael доступ для выполнения заданий cron.

Обратите внимание, что если у пользователя есть права sudo, он может редактировать crontab другого пользователя с помощью следующей команды:

Однако, если cron.deny существует и пользователь указан в нем, но не указан в cron.allow , вы получите следующую ошибку после выполнения предыдущей команды:

По умолчанию большинство демонов cron предполагают, что все пользователи имеют доступ к cron, если только не существует cron.allow или cron.deny.

Специальный синтаксис

Есть также несколько сокращенных команд, которые можно использовать в файле crontab, чтобы упростить планирование заданий. По сути, это ярлыки для указанного эквивалентного числового расписания:

< td>0 * * * * < tr>
Ярлык Сокращение для
@hourly
@daily 0 0 * * *
@ еженедельно 0 0 * * 0
@ежемесячно 0 0 1 * *
@yearly 0 0 1 1 *

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

Кроме того, сокращение @reboot будет запускать любую команду, следующую за ним, каждый раз при запуске сервера:

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

Заключение

Cron – это гибкая и мощная утилита, которая может облегчить выполнение многих задач, связанных с системным администрированием. В сочетании со сценариями оболочки вы можете автоматизировать задачи, которые обычно утомительны или сложны.

Хотите узнать больше? Присоединяйтесь к сообществу DigitalOcean!

Присоединяйтесь к нашему сообществу DigitalOcean, насчитывающему более миллиона разработчиков, бесплатно! Получайте помощь и делитесь знаниями в нашем разделе "Вопросы и ответы", находите руководства и инструменты, которые помогут вам расти как разработчику и масштабировать свой проект или бизнес, а также подписывайтесь на интересующие вас темы.

Мы покажем вам, как использовать crontab CentOS. Как автоматизировать системные задачи в CentOS 7 с помощью CentOS crontab. Программная утилита crontab представляет собой планировщик заданий на основе времени в Unix-подобных операционных системах. Cron управляется файлом crontab (таблица cron), файлом конфигурации, который указывает команды оболочки, которые должны запускаться периодически по заданному расписанию. Файлы crontab хранятся там, где хранятся списки заданий и другие инструкции для демона cron. Пользователи могут иметь свои собственные файлы crontab, и часто существует общесистемный файл crontab (обычно в /etc или подкаталоге /etc), который могут редактировать только системные администраторы.

Оглавление

1. Подключитесь по SSH и обновите системное ПО

Прежде всего подключитесь к Linux VPS через SSH и обновите все системное программное обеспечение до последней доступной версии. Для этого вы можете использовать следующую команду:

2. Проверьте, установлен ли пакет cronie

Для автоматизации системных задач, или более известных как задания в Linux, вы можете использовать утилиту под названием Cron.Используя Cron, вы можете автоматически запускать сценарии в течение заданного периода времени, создавать резервные копии ваших баз данных или других важных файлов, отслеживать службы, работающие на вашем сервере, и многое другое. Чтобы использовать утилиту Cron, вам необходимо установить пакет cronie в вашей системе. Он должен быть уже установлен на вашем сервере. Для подтверждения введите следующую команду:

3. Установить пакет cronie

Если он не установлен, вы можете установить его с помощью yum. Yum — это менеджер пакетов, который вы можете использовать для установки и управления программным обеспечением в CentOS 7. Выполните следующую команду:

4. Проверьте, запущена ли служба crond

Задания cron выбираются службой crond. Чтобы проверить, работает ли служба crond на вашем CentOS VPS, вы можете использовать следующую команду:

5. Настройка заданий cron

Для настройки заданий cron необходимо изменить файл /etc/crontab. Обратите внимание, что его может изменить только пользователь root. Чтобы проверить текущую конфигурацию, вы можете использовать следующую команду:

Вывод должен быть похож на приведенный ниже:

Как вы можете видеть, файл crontab уже содержит объяснение того, как определить ваши собственные задания. Синтаксис следующий:

Звездочка (*) в crontab может использоваться для указания всех допустимых значений, поэтому, если вы хотите, чтобы команда выполнялась каждый день в полночь, вы можете добавить следующее задание cron:

Ваше задание cron будет запущено по адресу:

Определенные пользователи также могут создавать задания cron. Задания cron для конкретных пользователей находятся в /var/spool/cron/username. Когда вы создаете задания cron для определенных пользователей, вам не нужно указывать имя пользователя в задании cron. Поэтому синтаксис будет таким, как показано ниже:

6. Перезапустите службу crond

После внесения изменений перезапустите службу crond с помощью следующей команды:

Для получения дополнительной информации вы можете проверить справочные страницы:

Если вам трудно настроить правильные задания cron в начале, вы можете использовать калькулятор заданий cron, чтобы сгенерировать выражение задания cron. В Интернете есть несколько хороших калькуляторов заданий cron.

Читайте также: Ubuntu crontab

Конечно, вам не обязательно использовать crontab CentOs, если вы используете одну из наших услуг хостинга CentOS VPS, и в этом случае вы можете просто попросить наших опытных администраторов Linux помочь вам с crontab в CentOS для автоматизации системных задач. Они доступны круглосуточно и без выходных и немедленно обработают ваш запрос.

<р> ПС. Если вам понравился этот пост о том, как использовать crontab CentOS, поделитесь им с друзьями в социальных сетях, используя кнопки слева, или просто оставьте ответ ниже. Спасибо.

Демон Cron — это встроенная утилита Linux, которая запускает процессы в вашей системе в запланированное время. Cron читает crontab (таблицы cron) для предопределенных команд и сценариев.

Используя определенный синтаксис, вы можете настроить задание cron для автоматического запуска скриптов или других команд.

В этом руководстве с примерами показано, как настроить задание cron в Linux.

Основной синтаксис Crontab

Cron считывает из файлов конфигурации список команд для выполнения. Демон использует специальный синтаксис для интерпретации строк в таблицах конфигурации crontab.

Чтобы настроить задание cron, нам необходимо понять основные элементы, из которых состоит этот синтаксис. Стандартная форма строки crontab выглядит следующим образом:

<р>1. Первые пять полей a b c d e указывают время/дату и периодичность задания.

<р>2. Во втором разделе /directory/command указывает расположение и сценарий, который вы хотите запустить.

<р>3. Вывод конечного сегмента является необязательным. Он определяет, как система уведомляет пользователя о завершении задания.

1. Формат времени задания Cron

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

В таблице ниже приведены возможные значения для полей и пример синтаксиса:

После добавления задач сохраните файл и выйдите. Демон cron прочитает и выполнит предоставленные инструкции.

Помните, что Cron не нужно перезапускать, чтобы изменения вступили в силу.

Редактировать crontab для другого пользователя

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

Примечание. Если вам нужно запустить задание cron при перезагрузке, обратитесь к нашему руководству Crontab on Boot.

Примеры заданий Cron

При указании заданий используйте звездочку, чтобы указать все значения. Ввод значения в одно из полей запускает команду только для этого значения. Например:

Несмотря на то, что он запускается в 2 часа ночи, он запускается только тогда, когда первое число месяца (0) приходится на среду (4). Если вы измените на следующее:

Команда запускается первого числа каждого месяца в 2 часа ночи. В следующей таблице представлены несколько основных команд, использующих файл /root/backup.sh из наших предыдущих примеров.

Примечание. Ознакомьтесь с сообщением о команде at, альтернативе заданию cron.

Теперь вы хорошо понимаете, как использовать cron для планирования задач в Linux. Используйте примеры, представленные в этом руководстве, для создания и планирования заданий cron в вашей системе. Со временем расширяйте задачи, используя специальные символы, чтобы автоматизировать большинство рутинных задач.

Выполнение одной и той же задачи снова и снова может быть довольно утомительным. Планирование заданий cron позволяет пользователям автоматизировать задачи на виртуальном частном сервере или в любой Unix-подобной операционной системе. Это экономит драгоценное время, позволяя пользователям сосредоточиться на других важных задачах.

В этом подробном руководстве для начинающих вы познакомитесь с основами заданий cron, включая их типы, синтаксис, специальные строки и разрешения. К концу этой статьи вы сможете использовать задания cron для более эффективного планирования задач.

Что такое задание Cron?

Cron – это служебная программа, которая позволяет пользователям многократно вводить команды для планирования задач в определенное время. Задачи, запланированные в cron, называются заданиями cron. Пользователи могут определить, какую задачу они хотят автоматизировать и когда ее следует выполнять.

Cron — это демон — фоновый процесс, выполняющий неинтерактивные задания. В Windows вы можете быть знакомы с фоновыми процессами, такими как службы, которые работают аналогично демону cron.

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

Файл cron — это простой текстовый файл, содержащий команды, которые нужно периодически запускать в определенное время. Системная таблица cron или файл конфигурации crontab по умолчанию — /etc/crontab, расположенный в каталоге crontab /etc/cron.*/.

Только системные администраторы могут редактировать системный файл crontab. Однако Unix-подобные операционные системы поддерживают несколько администраторов. Каждый может создать файл crontab и написать команды для выполнения заданий в любое время.

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

Хотя задания cron используются в основном системными администраторами, они могут быть полезны и веб-разработчикам.

Например, как администратор веб-сайта, вы можете настроить одно задание cron для автоматического резервного копирования вашего сайта каждый день в полночь, другое для проверки неработающих ссылок каждый понедельник в полночь и третье для очистки кэша сайта каждую пятницу в полдень.

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

  • Самый короткий интервал между заданиями – 60 секунд. С cron вы не сможете повторять задание каждые 59 секунд или реже.
  • Централизовано на одном компьютере. Задания Cron нельзя распределять между несколькими компьютерами в сети. Поэтому, если компьютер, на котором запущен cron, выйдет из строя, запланированные задачи не будут выполняться, а пропущенные задачи можно будет запустить только вручную.
  • Отсутствует механизм автоматического повтора. Cron предназначен для запуска в строго определенное время. Если задача завершается с ошибкой, она не будет запускаться снова до следующего запланированного времени. Это делает cron непригодным для добавочных задач.

С учетом этих ограничений cron является отличным решением для простых задач, которые выполняются в определенное время с регулярными интервалами не менее 60 секунд.

Если вы хотите запланировать одноразовое задание на потом, вы можете использовать другой метод.

Профессиональный совет

Перед созданием задания Cron убедитесь, что ваш скрипт работает. Для этого откройте файл в браузере (по URL-адресу) или запустите его через SSH, в зависимости от того, какой тип скрипта у вас есть. Если ваш скрипт не работает, обратитесь за помощью к разработчикам.

Основные операции с заданиями Cron

В этом руководстве показано, как планировать задания cron путем ввода команд в программу-оболочку, такую ​​как Bash, в Linux или другой Unix-подобной операционной системе.

Виртуальный хостинг Hostinger работает под управлением операционной системы Linux. Таким образом, изучение того, как планировать задания cron, значительно повысит эффективность вашей работы в качестве администратора VPS. Доступ к командной строке для VPS можно получить через PuTTY SSH.

Прежде чем приступить к основным операциям cron, необходимо ознакомиться с различными файлами конфигурации заданий cron:

  • Системный файл crontab. Используйте его для планирования важных общесистемных заданий, которые можно изменить только с привилегиями root.
  • Пользователь crontab. Этот файл позволяет пользователям создавать и редактировать задания cron, которые применяются только на уровне пользователя.

Если вы хотите отредактировать системный crontab, убедитесь, что текущий пользователь имеет привилегии root.

Следующее является некоторыми основными операциями, которые может выполнять cron:

Чтобы создать или отредактировать файл crontab, введите в командной строке следующее:

Если в вашей системе не найдены файлы crontab, команда автоматически создаст новый. crontab -e позволяет добавлять, редактировать и удалять задания cron.

Для редактирования файла crontab вам понадобится текстовый редактор, например vi или nano. При первом входе в crontab -e вам будет предложено выбрать, в каком текстовом редакторе вы хотите редактировать файл.

Чтобы просмотреть список активных запланированных задач в вашей системе, введите следующую команду:

Если в вашей системе несколько пользователей, вы можете просмотреть их списки файлов crontab, введя следующую команду от имени суперпользователя:

crontab -u имя пользователя -l

Вы также можете легко редактировать запланированные задания других пользователей, введя следующую команду crontab:

sudo su crontab -u имя пользователя -e

Чтобы предоставить себе привилегии суперпользователя, добавьте sudo su в начало команды. Некоторые команды, включая эту, могут выполняться только пользователями root.

Наконец, чтобы удалить все запланированные задачи в файле crontab и начать заново, введите следующую команду:

В качестве альтернативы следующая команда аналогична crontab -r, за исключением того, что перед удалением crontab пользователю будет предложено выбрать вариант yes/no:

Помимо crontab, пользователь root также может добавлять задания cron в каталог etc/cron.d. Он больше всего подходит для запуска сценариев автоматической установки и обновлений.

Имейте в виду, что пользователь, добавляющий задания cron в этот каталог, должен иметь root-доступ и соответствовать соглашениям об именовании частей выполнения.

Кроме того, пользователь root может переместить свои скрипты в следующие каталоги, чтобы запланировать их выполнение:

  • /etc/cron.hourly/ — запускать все скрипты раз в час
  • /etc/cron.daily/ — запускать один раз в день.
  • /etc/cron.weekly/ — запускать раз в неделю.
  • /etc/cron.monthly/ – выполняется раз в месяц.

Синтаксис Crontab

Чтобы создать задание cron, вам нужно сначала понять синтаксис и форматирование cron. В противном случае правильная настройка заданий cron может оказаться невозможной.

Синтаксис crontab состоит из пяти полей со следующими возможными значениями:

  • Минута. Минута часа, в течение которого будет выполняться команда, в диапазоне от 0 до 59.
  • Час. Час, в который будет выполняться команда, в диапазоне от 0 до 23 в 24-часовом формате.
  • День месяца. День месяца, в который пользователь хочет запустить команду, в диапазоне от 1 до 31.
  • Месяц. Месяц, в котором пользователь хочет, чтобы команда выполнялась, в диапазоне от 1 до 12, что соответствует январю-декабрю.
  • День недели. День недели, в который будет выполняться команда, в диапазоне от 0 до 6, представляющий воскресенье-субботу. В некоторых системах значение 7 соответствует воскресенью.

Не оставляйте поля пустыми.

Если, например, вы хотите настроить задание cron для запуска root/backup.sh каждую пятницу в 17:37, вот как должна выглядеть ваша команда cron:

37 17 * * 5 root/backup.sh

В приведенном выше примере 37 и 17 означают 17:37. Обе звездочки для полей «День месяца» и «Месяц» означают все возможные значения. Это означает, что задача должна повторяться независимо от числа или месяца. Наконец, 5 представляет пятницу. Затем за набором чисел следует местоположение самой задачи.

Если вы не уверены в написании синтаксиса cron вручную, вы можете использовать бесплатные инструменты, такие как Crontab Generator или Crontab.guru, чтобы сгенерировать точные числа для времени и даты, которые вы хотите использовать для своей команды.

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

Специальные строки задания Cron

Специальные строки используются для планирования заданий cron через временные интервалы, при этом пользователю не нужно вычислять логический набор чисел для ввода. Чтобы использовать их, напишите @, а затем простую фразу.

Вот несколько полезных специальных строк, которые можно использовать в командах:

  • @hourly. Задание будет выполняться раз в час.
  • @daily или @midnight. Эти строки будут запускать задачу каждый день в полночь.
  • @еженедельно. Используйте это, чтобы запускать задания раз в неделю в полночь в воскресенье.
  • @ежемесячно. Эта специальная строка запускает команду один раз в первый день каждого месяца.
  • @yearly. Используйте это, чтобы запускать задачу один раз в год в полночь 1 января.
  • @перезагрузить. С этой строкой задание будет выполняться только один раз при запуске.

Не забывайте проявлять особую осторожность при планировании заданий cron, зависящих от часового пояса.

Примеры синтаксиса Cron

Теперь, когда вы знаете, как выглядит правильный синтаксис cron, мы рассмотрим несколько примеров, которые помогут вам лучше понять его.

Имейте в виду, что выходные данные cron будут автоматически отправлены на вашу локальную учетную запись электронной почты. Если вы хотите прекратить получать электронные письма, вы можете добавить >/dev/null 2>&1 к команде, как показано в следующем примере:

0 5 * * * /root/backup.sh >/dev/null 2>&1

Если вы хотите отправить вывод на определенную учетную запись электронной почты, добавьте MAILTO, а затем адрес электронной почты. Вот пример:

Посмотрите на следующие примеры команд, чтобы лучше понять синтаксис cron:

Разрешения Cron

Следующие два файла можно создать или отредактировать, чтобы разрешить или запретить пользователям использовать системный файл cron:

  • /etc/cron.allow — если файл cron.allow существует, он должен содержать имя пользователя, чтобы разрешить ему использовать задания cron.
  • /etc/cron.deny — если cron.allow не существует, но существует cron.deny, пользователь, который хочет использовать задания cron, не должен быть указан в файле.

Заключение

Настройка автоматически запланированных заданий – это практичное решение, которое не позволит вам забыть о важных задачах.

Задания Cron — отличный способ для системных администраторов и веб-разработчиков управлять повторяющимися задачами. Все, что нужно сделать, это ввести правильные команды и выбрать правильное время выполнения.

Чтобы запланировать задание cron, используйте правильный синтаксис в командной строке. Кроме того, вы можете использовать специальные строки, чтобы упростить процесс. Не забудьте назначить соответствующие разрешения, чтобы только авторизованные пользователи могли получить доступ к файлу cron.

Если вы ищете решение для WordPress, ознакомьтесь с нашим руководством по работе с cron для WordPress.

Мы надеемся, что эта статья помогла вам понять основы использования заданий cron для планирования задач. Если у вас есть какие-либо вопросы, не стесняйтесь оставлять их в разделе комментариев.

Линас начинал как агент по работе с клиентами, а сейчас является полнофункциональным веб-разработчиком и руководителем технической группы в Hostinger. Он обожает предлагать людям первоклассные технические решения, но, несмотря на то, что ему нравится программировать, втайне он мечтает стать рок-звездой.

Читайте также: