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

Обновлено: 07.07.2024

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

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

Как работает Cron?

Фактически, Cron - это сервис, как и большинство других сервисов Linux, он запускается при старте системы и работает в фоновом режиме. Его основная задача выполнять нужные процессы в нужное время. Существует несколько конфигурационных файлов, из которых он берет информацию о том что и когда нужно выполнять. Сервис открывает файл /etc/crontab, в котором указаны все нужные данные. Часто, в современных дистрибутивах там прописан запуск утилиты run-parts, которая запускает нужные скрипты из следующих папок:

  • /etc/cron.minutely - каждую минуту;
  • /etc/cron.hourly - каждый час;
  • /etc/cron.daily - каждый день;
  • /etc/cron.weekly - каждую неделю;
  • /etc/cron.monthly - каждый месяц.

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

Она позволяет выполнять их даже если компьютер работает не всегда и время от времени выключается. Дата выполнения задания последний раз записывается в файл /var/spool/anacron, а затем, при следующем запуске anacron проверяет был ли запущен нужный процесс в нужное время, и если нет, то запускает его. Сам же сервис cron больше рассчитан на выполнение задач в течение дня или с точно расписанным временем и датой.

Настройка Cron

Для настройки времени, даты и интервала когда нужно выполнять задание используется специальный синтаксис файла cron и специальная команда. Конечно, вы всегда можете отредактировать файл /etc/crontab, но этого делать не рекомендуется. Вместо этого, есть команда crontab:

Ее всегда желательно выполнять с опцией -e, тогда для редактирования правил будет использован ваш текстовый редактор по умолчанию. Команда открывает вам временный файл, в котором уже представлены все текущие правила cron и вы можете добавить новые. После завершения работы команды cron файл будет обработан и все правила будут добавлены в /var/spool/cron/crontabs/имя_пользователя причем добавленные процессы будут запускаться именно от того пользователя, от которого вы их добавляли.

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

Синтаксис crontab

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

минута час день месяц день_недели /путь/к/исполняемому/файлу

Нужно сказать, что обязательно нужно писать полный путь к команде, потому что для команд, запускаемых от имени cron переменная среды PATH будет отличаться, и сервис просто не сможет найти вашу команду. Это вторая самая распространенная причина проблем с Cron. Дата и время указываются с помощью цифр или символа '*'. Этот символ означает, что нужно выполнять каждый раз, если в первом поле - то каждую минуту и так далее. Ну а теперь перейдем к примерам.

Примеры настройки cron

Сначала можно посмотреть задачи cron для суперпользователя, для этого можно воспользоваться опцией -l:

Вы можете удалить все существующие задачи командой -r:

Давайте предположим, что нам нужно запускать от имени суперпользователя наш скрипт по адресу /usr/local/bin/serve. Какой-нибудь обслуживающий скрипт. Самый простой пример - запускать его каждую минуту:

Далее, усложним, будем запускать каждый час, в нулевую минуту:

Запускаем в нулевую минуту нулевого часа, каждый день, это в 12 ночи:

0 0 * * * /usr/local/bin/serve

Если идти так дальше, то можно запускать в первый день каждого месяца:

0 0 1 * * /usr/local/bin/serve

Можно в любой день, например, 15 числа:

0 0 15 * * /usr/local/bin/serve

В первый день недели первого месяца года, 0 часов 0 минут:

0 0 * 1 0 /usr/local/bin/serve

Или в нулевой день недели каждого месяца:

0 0 * * 0 /usr/local/bin/serve

Вы можете выбрать любую минуту, час и день недели, например, 15.30 во вторник:

30 15 * * 2 /usr/local/bin/serve

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

30 15 * * sun /usr/local/bin/serve

Для того чтобы указать определенный интервал нужно использовать символ "-", например, каждый час, с семи утра до семи вечера:

0 7-19 * * * /usr/local/bin/serve

Если нужно запустить команду несколько раз, можно использовать разделитель ",". Например, запустим скрипт в 5 и 35 минут пятого (16:05 и 16:35), каждый день:

5,35 16 * * * /usr/local/bin/serve

Вы можете захотеть не указывать отдельно время, а просто указать интервал, с которым нужно запускать скрипт, например, раз в 10 минут. Для этого используется разделитель косая черта - "/":

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

  • @reboot - при загрузке, только один раз;
  • @yearly, @annually - раз год;
  • @monthly - раз в месяц;
  • @weekly - раз в неделю;
  • @daily, @midnight - каждый день;
  • @hourly - каждый час.

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

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

sudo vi /etc/corn.daily/basckup

Скрипт должен выглядеть подобным образом. Теперь вы знаете как настроить cron, осталось проверить как все работает.

Отладка работы

После того как вы настроили правила, еще хотелось бы проверить работают ли они. Для этого ждем того времени, когда скрипт уже должен быть выполнен и смотрим лог cron. Иногда он находится в /var/log/cron, а иногда пишется в syslog. Например, у меня в crontab есть такая строка:

Она должна выполняться в 19.40 каждый день, теперь смотрим лог:

grep CRON /var/log/syslog

Если нужно проверить скрипт, который находится в одной из специализированных папок, то тут еще проще, просто запустите run-paths, передав ей в параметр нужную папку или даже сам скрипт:

sudo run-paths /etc/cron.daily/

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

Выводы

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

Cron — классический демон, использующийся для периодического выполнения заданий в определённое время. Регулярные действия описываются инструкциями, помещенными в файлы crontab и в специальные каталоги.

Системный демон crond предназначен для выполнения регулярно повторяющихся заданий. Обычно crond запускается как системный сервис в процессе начальной загрузки системы и остается активным пока система не выключена. Сразу после старта он просматривает каталоги /var/spool/cron и /etc/cron.d, а также файл /etc/crontab в поисках заданий, которые нужно выполнять. Затем crond просыпается каждую минуту, выполняет предписанные ему задания и снова засыпает до начала следующей минуты.

Посмотреть версию своего cron можно с помощью команды:


Если он не установлен, вы можете использовать yum, чтобы установить его.

Задания cron выбраны службой crond.

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

Для реализации данного способа требуется внести задачу скрипта skript.sh в каталоге /sh/skriptiki/ на исполнение в программу cron на сервере CentOS 7.

Проверим, работает ли у нас вообще cron в фоновом режиме?


Открываем файл заданий cron:

Добавляем строки по смыслу общего синтаксиса в файле.

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

2. Шаблоны задания.

Файлы crontab, создаваемые для отдельных пользователей, находятся в каталоге /usr/spool/cron/crontabs/ или /var/spool/cron/tabs/ . Редактировать их вручную не рекомендуется, для этого используют команду crontab -e . Файлы crontab, используемые для управления всей системой, располагаются в каталоге /etc/cron.d/ . Кроме того, в каталогах /etc/cron.daily/ , /etc/cron.weekly/ и /etc/cron.monthly/ размещаются автоматически запускаемые программы (ежедневно, еженедельно или ежемесячно).

Каждый пользователь системы имеет свой файл заданный crontab, в котором описано, в какое время и какие программы запускать от имени этого пользователя. Для редактирования файла crontab используется специальная одноимённая программа crontab, позволяющая не прерывать процесс cron на время редактирования.

Для отображения содержимого crontab-файла текущего пользователя используйте команду:

Поэтому я обычно выполняю команду:

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

После задания значения переменной EDITOR можно выполнить команду для редактирования заданий пользователя:

Давайте их рассмотрим.

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


Шаблон задания для cron выглядит примерно так:

В каждом из этих полей вместо простого числового значения можно прописать:

  • список возможных значений, разделенных запятыми (в списках можно использовать только числа, имена не допускаются);
  • интервал значений (например, 1-3);
  • или звездочку (*), обозначающую любое из допустимых значений для данного поля.

Следующее поле (шестое) содержит подлежащую выполнению командную строку оболочки shell. Считается, что поле команда продолжается до конца строки и может содержать пробелы и символы табуляции. Причем заключать эту командную строку в кавычки не требуется. Как и в обычной командной строке shell, можно указать в этом поле несколько команд, разделенных точкой с запятой (хотя, наверное, лучше написать командный файл и указать в crontab-файле его имя).

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

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

Ответ:

Естественно, придется ответить y .

Если же ошибок не было (или вы их исправили), вы увидите только одну строку:

Ответ:

Подробнее об этом вы можете прочитать на man-странице crontab, а пока будем считать, что вам такое право предоставлено.

Чтобы изменить crontab-файл другого пользователя (например, bitrix ):

Команда для очистки всех заданий текущего пользователя:

Команда для просмотра краткой справки по установленным таймерам:

Ответ:


Команда чтобы увидеть загруженные, но неактивные таймеры:

Ответ:


3. Где хранятся crontab-файлы?

Дело в том, что одного такого файла нет. В GNU/Linux имеется целый каталог /var/spool/cron , в котором хранятся crontab-файлы для всех пользователей, включая root-а. Каждый такой файл имеет имя, совпадающее с регистрационным именем пользователя, по которому процесс cron определяет, какой UID надо использовать при выполнении команд из этого файла. Владельцем всех этих файлов является пользователь root.

и звёздочками обозначены конкретные блоки времени.

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

Команда run-parts в нем служит для запуска всех скриптов из каталога, указанного в виде параметра этой команды.

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

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

4. Невыполненные задания и утилита anacron.

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

Эту проблему позволяет решить другой системный демон, имя которого anacron.

В отличие от cron, он работает по следующему принципу:

Конфигурационный файл /etc/anacrontab может содержать строки трех типов:

  • строки описания заданий,
  • строки задания переменных окружения,
  • строки комментариев.

Строка описания заданий имеет следующий формат:

Строки задания переменных имеют стандартный формат:

Приведу в качестве примера файл /etc/anacrontab из стандартной установки дистрибутива CentOS 7:

Ответ:


5. Примеры cron-заданий.

Ниже приведены несколько примеров cron-заданий:

3.1. Чтобы выполнять команду каждую минуту, задание должно быть такое:

3.2. Похожее задание, только команда будет вызываться каждые пять минут:

3.3. Вызывать команду 4 раза в час (каждые 15 минут):

3.4. Чтобы выполнить команду каждый час в 30 минут, пишем:

То есть команда будет выполняться не каждые 30 минут, а тогда, когда значение минут будет равно 30 (например, 10:30, 11:30, 12:30 и так далее).

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

3.6. Выполнять команду каждый час будет следующее задание:

3.7. Выполнение команды каждые два часа:

3.8. Чтобы выполнять команду каждый день (в 00:00):

3.9. Выполнение команды каждый день в 03:00:

3.10. Выполнение команды каждое воскресенье (sunday):

3.11. Другой вариант задания, которое будет выполнять команду каждое воскресенье (естественно, тоже в 00:00):

3.12. Выполнение команды каждый день с понедельника по пятницу:

3.13. Следующее задание будет выполнять команду каждый месяц, 1-го числа в 00:00:

3.14. Выполнять команду в 16:15 каждого первого числа месяца будет это задание:

3.15. Выполнение команды каждые три месяца:

3.16. Выполнение команды в строго определённое время и месяц:

3.17. Задание будет вызывать команду в начале каждого полугодия (в 00:00 1-го дня):

3.18. Выполнение команды каждый год 1-го января в 00:00:

6. Готовые cron-задания.

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

7. Настройка cron для web-программистов.

5.1. Добавляем в cron задачу, которая будет выполнятся каждую минуту.

И добавляем (будет выполняться под тем пользователем под кем вы зашли в SSH):

Сохраняемся, SHIFT+Z 2 раза.

5.2. Для отправки на почту воспользуемся postfix.

И добавляем (будет выполняться под тем пользователем под кем вы зашли в SSH):

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

5.2.2. Выполнение команды сканирования открытых портов указанного IP-адреса, например, по воскресениям с последующей отправкой файла результатов работы nmap по указанной почте:

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

Сохраняемся, SHIFT+Z 2 раза.

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

5.3. Иногда надо запускать по cron скрипт который лежит уже на сайте и использует окружение сайта.

Установим менеджер загрузок wget:

И добавляем (будет выполняться под тем пользователем под кем вы зашли в SSH):

Сохраняемся, SHIFT+Z 2 раза.

8. Настройка cron для системных администраторов.

Так же существует anacron (anachronistic cron или асинхронный (анахроничный) cron) и его запуск и его задания тоже нужно учитывать, смотрите файл /etc/anacrontab и каталоги /etc/cron.daily/ , /etc/cron.hourly/ , /etc/cron.monthly/ и /etc/cron.weekly/ .

Часто, в современных дистрибутивах там прописан запуск утилиты run-parts, которая запускает нужные скрипты из следующих папок:

9. Список всех задач cron у всех пользователей.

К сожалению для системного администратора нет такого инструмента, так как задачи в CentOS 7 могут храниться в нескольких местах:

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

Недостаток этого решения очевиден:

Решение простое — создадим функцию allcrontab в файле

/.bashrc для ввода информации в более удобном виде:

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

Чтобы вывести список всех заданий cron от всех пользователей вашей системы создайте скрипт:

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

10. Отладка работы cron.

После того как вы настроили правила, еще хотелось бы проверить работают ли они. Для этого ждем того времени, когда скрипт уже должен быть выполнен и смотрим log cron. Обычно он находится в /var/log/cron .

Если нужно проверить скрипт, который находится в одной из специализированных папок, то тут еще проще, просто запустите run-paths , передав ей в параметр нужную папку или даже сам скрипт:

Примерно вот так:

11. Файлы справки и помощи по cron.

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

12. Cron калькуляторы.

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

Внимание! На самом деле не рекомендуется обработать те файлы вручную!

На crontab странице справочника есть упоминание, что:

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

Файлы под /var/spool считаются временными/рабочими, вот почему они, вероятно, будут удалены во время обновления, хотя если более внимательно рассмотреть cron сценарии обновления пакета, то можно понять некоторые интересные детали.

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

Favorite

Добавить в избранное

Главное меню » Операционная система CentOS » Автоматизация системных задач с использованием cron на CentOS 7

Автоматизация системных задач с использованием cron на CentOS 7

Н а этом уроке мы собираемся показать вам, как автоматизировать системные задачи на ядре Linux VPS в качестве операционной системы возьмем CentOS 7.

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

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

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

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

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

Вывод должен быть аналогичен приведенному ниже:

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

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

Ваша cron будет работать в следующие дни:

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

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

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

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

Автоматизация системных задач с использованием cron на CentOS 7

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

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

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

Что представляет собой Cron?

Название программы образовано от греческого «хронос», означающего время. Что, собственно, логично. Задача демона — в определённые моменты выполнять записанные в него команды. Сам процесс реализации основан на проверке таблиц крона и сравнении их с текущими датой и временем.

Файл crontab

Самым главным элементом настройки Cron является конфигурационный файл crontab. Он содержит в себе команды исполнения и пути к скриптам. Все они запускаются от имени суперпользователя. Так как они расположены в директории /etc/cron.d, настройка этих файлов должна производиться именно там.

настройки cron

Для каждого отдельного пользователя системы используется свой файл crontab.

Разные дистрибутивы Linux используют свои каталоги для хранения пользовательских настроек. Для RedHat это — var/spool/cron. В Debian и Ubuntu это будет var/spool/cron/crontabs. И var/spool/cron/tabs в SUSE.

Список команд для управления crontab

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

  • -u имя_пользователя. Устанавливает пользователя, с задачами и настройками которого будут производиться дальнейшие действия. Если опустить данный ключ, то будет задан пользователь по умолчанию.
  • -l. Выведет текущий список задач.
  • -e. Производит запуск редактора для планировщика задач.
  • -r. Удаляет все имеющиеся задачи из списка.

Формат задачи

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

  • в первой указывается количество минут. Доступный интервал — от 0 до 59. Можно использовать несколько значений, диапазон и специальные символы;
  • вторая колонка — часы. Могут использоваться значения от 0 до 23;
  • далее — день. Здесь можно указать число от 1 до 31;
  • четвёртый — месяц. Минимальное значение 1, максимальное — 12;
  • пятая — неделя. 0 или 7 соответствует воскресенью;
  • последней идёт сама выполняемая команда.

Как было упомянуто, в файле можно указать специальные символы, «*» или «/». Например, такая запись — 23 */2 *** echo «Выполнить» означает, что каждый чётный час и 23 минуты будет отображаться надпись «Выполнить».

cron настройка

Особенности файла crontab

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

Дополнительные переменные

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

  • sun — воскресенье;
  • mon — понедельник;
  • tue — вторник;
  • wed — среда;
  • thu — четверг;
  • fri — пятница;
  • sat — суббота.

Для месяцев также имеются отдельные буквенные значения — jan, feb, mar, apr, may, jun, jul, aug, sep, oct, nov, dec.

настройка cron centos

Также для настройки Cron имеются отдельные переменные, способные заменить целые строки команд:

  • @reboot. Команда будет стартовать каждый раз при запуске компьютера;
  • @yearly. Данная задача будет запускаться один раз в год. Эквивалентная ей запись в числовом виде может быть такой: 0 0 1 1 *. Ее синоним ещё можно записать как @annually;
  • @monthly. Как можно догадаться из названия, данная переменная производит запуск команды раз в месяц. Ее числовой аналог — 0 0 1 * *;
  • @weekly. Данная переменная будет запускаться каждую неделю;
  • @dayly. Раз в день;
  • @midnight. Запуск будет произведён в полночь;
  • @hourly. Каждый час.

Настройка Cron в Centos 7

Сам процесс установки и конфигурирования мало чем отличается от других схожих Linux дистрибутивов. Перед настройкой Cron в Centos необходимо установить пакет cronie в систему. Сделать это можно с помощью команды yum install cronie. Для создания файла с инструкциями нужно выполнить в терминале crontab -e. Все системные настройки Cron будут сохраняться по адресу /var/spool/cron/имя пользователя.

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

Несколько полезных примеров для создания часто повторяющихся задач

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

  • 00 09-17 * * 1 - 5 /путь/ к команде/ крона. Данная команда будет автоматически выполнять запланированное действие каждый рабочий день с 9 до 5 часов каждую первую минуту;
  • 00 9,17 * * * /путь/ к команде/ крона. В этом примере происходит исполнение команды два раза в день. Первый в 9, второй - в 5 часов. Знак «*» показывает, что команда будет выполняться каждый день, месяц и год;
  • Также не стоит забывать и про символьные переменные. Например, @monthly будет выполнять задачу каждый месяц в первую минуту первого часа первого дня. А @daily будет запускаться каждый день.

Отзывы пользователей о планировщике Cron

Как правило, для рядовых и неискушённых пользователей Cron представляет собой всего лишь набор символов. Но вот для системных администраторов и заядлых «линуксоидов» данная утилита является незаменимым помощником. Многие отмечают гибкость и производительность хорошо настроенной системы.

cron d настройка

С помощью Cron можно автоматизировать рутинные процессы, которые слишком сложно выполнять вручную через определённые промежутки времени. Будь то создание бэкапов системы или её обновление.

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

Начинающие пользователи обычно теряются в большом количестве настроек и сложностей при запуске демона планировщика. Для них имеются более понятные оболочки. Например, для дистрибутивов, основанных на Debian, ей может стать gnome schedule. KDE версия называется kcron.

Выводы

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

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