Что такое cron в linux

Делаем «жизнь» в Linux проще или автоматизация запуска процессов с помощью cron

Введение
Демоны atd и cron

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

Михаэль Кофлер «Linux. Установка, настройка, администрирование.» — СПб.: Питер, 2014

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

Если у вас установлен обычный дистрибутив, то вам не о чем беспокоится, cron инсталлируется автоматически. Если же минимальный, то не расстраиваемся — идём в терминал.

Доступ юзерам к демону, настраивается в каталоге /var/spool/cron/tabs/user. Их права задаются в файлах /cron/allow и /deny. Добавляя пользователя в /allow мы разрешаем ему выполнять команду cron, а если добавить пользователя в /deny, то наоборот, пользователю будет запрещено пользоваться демоном.

Сам cron настраивается в каталоге /etc/crontab. Файл /crontab или файлы в /etc/cron. d содержат список команд, предназначенных для выполнения. Синтаксис таков:

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

Если в любом из первых пяти полей стоит символ *, то это поле игнорируется. В предыдущей команде не указаны ни месяц, ни неделя, следовательно, она будет выполнятся каждые 15 минут. Чтобы изменить конфигурацию воспользуйтесь в терминале командой vi или вручную измените содержание файла /etc/crontab.

По умолчанию почти во всех дистрибутивах, файл /etc/crontab содержит всего несколько записей, необходимых для выполнения сценариев:
/etc/cron.hourly/* — сценарии выполняющиеся каждый час
/etc/cron.daily/* — сценарии выполняющиеся каждый день
/etc/cron.weekly/* — сценарии выполняющиеся каждую неделю
/etc/cron.monthly/* — сценарии выполняющиеся каждый месяц

Чтобы демон выполнял ваши команды, добавьте сценарий выполняющий команды в один из каталогов. Не забудьте установить бит execute(chmod a+x файл). Если вы этого не сделаете, то у вашего сценария просто не будет доступа и он выполнятся не будет!
Для проверки, будет ли запускаться ваш сценарий, выполните команду

Если сценарий расположен в другом каталоге, то соответственно меняйте daily на monthly и т.д.
И помните, в имени сценария не может быть точек, любые символы, кроме точек. Команда run-parts просто-напросто игнорирует сценарии с точкой, не знаю почему.

Источник

Использование Cron для автоматизации задач в Ubuntu 18.04

By Mark Drake and Shaun Lewis

Published on February 20, 2020

Предыдущая версия данного обучающего руководства была написана Шоном Льюисом.

Введение

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

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

Предварительные требования

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

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

Установка cron

Почти все дистрибутивы Linux имеют ту или иную форму cron, установленную по умолчанию. Но если вы используете компьютер Ubuntu, где cron не установлен, вы можете установить его с помощью APT.

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

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

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

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

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

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

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

Поле Допустимые значения
минута 0–59
час 0–23
День месяца 1–31
месяц 1–12 или ЯНВ–ДЕК
День недели 0–6 или ПНД–ВСК

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

Ниже представлен функциональный пример выражения cron. Это выражение запускает команду curl http://www.google.com каждый вторник в 17:30:

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

Ниже представлено несколько примеров использования компонента расписания cron:

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

Управление файлами crontab

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

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

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

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

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

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

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

Управление выводом задачи cron

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

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

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

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

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

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

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

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

Сокращение Краткая запись для
@hourly 0 * * * *
@daily 0 0 * * *
@weekly 0 0 * * 0
@monthly 0 0 1 * *
@yearly 0 0 1 1 *

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

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

Использование этих комбинаций при возможности поможет понимать расписание задач в вашем файле crontab.

Заключение

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

Источник

ИТ База знаний

Полезно

— Онлайн генератор устойчивых паролей

— Онлайн калькулятор подсетей

— Руководство администратора FreePBX на русском языке

— Руководство администратора Cisco UCM/CME на русском языке

— Руководство администратора по Linux/Unix

Навигация

Серверные решения

Телефония

FreePBX и Asterisk

Настройка программных телефонов

Корпоративные сети

Протоколы и стандарты

Время планировать задачи

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

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

Про Linux за 5 минут

Что такое файл Crontab

Crontab (таблица cron) представляет собой текстовый файл, который определяет расписание заданий cron. Существует два типа файлов crontab. Общесистемные файлы crontab и отдельные пользовательские файлы crontab.

/etc/crontab и файлы в каталоге /etc/cron.d являются общесистемными файлами crontab, которые могут редактировать только системные администраторы.

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

Синтаксис Crontab и операторы

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

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

Общесистемные файлы Crontab

Предопределенные макросы

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

Команда Crontab

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

Переменные Crontab

Демон cron автоматически устанавливает несколько переменных окружения.

Ограничения Crontab

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

Ниже приведены некоторые примеры заданий cron, которые покажут вам, как запланировать выполнение задачи на разные периоды времени.

Источник

Настройка cron в linux

Для выполнения конкретных задач по расписанию, или периодически, через равный промежуток времени (регулярных действий) в линуксе (да и вообще в UNIX-подобных ОС), существует утилита cron. Это программа-демон (служба, по аналогии с Windows), которая постоянно размещена и работает в оперативной памяти компьютера, сканируя раз в минуту список установленных задач на наличие актуальной для выполнения в текущий момент времени. Сами инструкции по запуску задач находятся в специально предназначенных crontab-файлах, которые, в свою очередь, находятся в строго отведённых каталогах системы.

Историческая справка

Утилита была разработана ещё в начале 70-х годов прошлого столетия, когда Кен Томпсон и Деннис Ритчи создали ОС UNIX. Они работали над проектом по созданию многозадачной и многопользовательской системы Multics, в котором принимали участие компании AT&T и Bell Labs. В то время подобная система была настолько высокотехнологичным и прорывным продуктом, что позже Bell Labs отказалась от активного участия в проекте из-за крайне низкой востребованности подобного рода систем для широкого потребления.
Однако, используя наработки из проекта Multics, Томпсон и Ритчи на этой основе и на волне энтузиазма создали ОС UNIX. Такая мощная и прорывная платформа для полноценного раскрытия своего функционала нуждалась в обеспечении её функционалом в виде специализированного ПО и утилит, одной из которых и по сей день является cron. Разработчиком утилиты является Кен Томпсон.

Функционал и основные компоненты примеры cron

Описания регулярных действий, запускаемых утилитой– это так называемая crontab-таблица, которая имеет строго определенный формат. Она состоит из 6 колонок, разделённых табуляторами или пробелами, первые 5 из которых определяют время запуска действия. Последняя колонка интерпретируется как команда запуска, т. е. само действие.

Приведённое описание действия означает запуск резервного копирования (путём архивирования и помещения созданного архива в var/backups/) всех каталога /home каждую неделю (по понедельникам) в 5 утра. Как видно, сначала задаётся колонка минут, затем часов, дней, месяцев и дней недели. Далее следует команда запуска, в данном случае для создания архива. В колонках, определяющих время могут использоваться числа, группы чисел, разделяемых запятыми, диапазоны чисел, разделяемых дефисом, а также символы «*» и «/». Каждому действию соответствует строка описания в crontab-файле. В приведённом примере цифра «1» означает порядковый номер дня недели — понедельник, соответственно «2» — вторник, «3» — среда и т. д., причём воскресенье это «0» или «7». Символ «*» означает любое значение с учётом валидности для соответствующего параметра. Для задания шага значений используется символ «/», например:

Пример настройки планировщика на выполнение задачи каждые 5 минут выглядит так

каждое первое число февраль, июль и ноябрь в 2.30

один раз в день с 00 до 09 часов по буднем.

Для добавления скрипта в крон нужно прописать полный путь к скрипту. Пример

В данном примере скрипт /etc/scripts/script.sh будет запускаться каждый день в час ночи. Существуют два типа crontab-файлов: системные и пользовательские. В отличие от пользовательских, в системных после колонок задания времени используется еще колонка для указания пользователя, от которого выполняется действие:

Кроме того, местоположение системных и пользовательских crontab-файлов различается: файлы, используемые для действий, управляющих системой находятся в /etc/cron.d/, а файлы, создаваемые для отдельных пользователей хранятся по адресу /var/spool/cron/crontabs/.
Для корректной работы утилиты необходимо в файлах crontab указывать оболочку командного интерпретатора, а также добавлять домашний каталог пользователя в PATH:

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

Если в описании действия команда отправляет текстовое содержимое в стандартный вывод, то программа, при наличии электронного адреса, автоматически перехватит это сообщение и отправит по e-mail.

Использование cron

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

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

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

Не стоит пугаться директории /tmp/ — файлы crontab в ней не потеряются.

Некоторые особенности cron

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

Узнать, запущена ли в данный момент утилита крон, позволяет команда:

Для запуска и остановки можно также использовать:

Логи Cron

Логи по работе запуска программы в каждой системе хранятся по разному. Например в Centos это /var/log/crond, в Ubuntu /var/log/syslog. Так же, если не указанно MAILTO, вывод команд работы скриптов которые запускает крон, можно посмотреть в каталоге /var/spool/mail. В файле пользователя из под которого запускается программа.

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

Источник

Планирование рутинных задач Linux при помощи Cron и Anacron

Что такое Cron?

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

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

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

Руководство использует Ubuntu 12.04 VPS, но любой современный дистрибутив Linux работает таким же образом.

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

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

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

Если событие было запланировано, cron выполняет все предварительно заданные команды, а затем возвращается в фоновый режим до следующей минуты. Если событие не было запланировано, он ждет 60 секунд и проверяет файл снова.

Благодаря поминутному планированию этот инструмент очень гибок. После установки дистрибутива Linux cron уже сконфигурирован запускать множество задач.

Чтение Crontab

Cron решает, какие команды когда запускать, читая серии файлов под названием crontab. Общесистемный crontab можно просмотреть в «/etc/crontab»:

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

В файле есть несколько частей, в которых следует разобраться.

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

Остальная часть файла определяет фактические команды и планирование. Каждая строка в этом списке представляет собой запись или строку в таблице. «tab» в crontab означает «table» (таблица). Каждая ячейка таблицы разделена двоеточием или табами.

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

# m h dom mon dow user command

Планирование часов и минут с Cron

Первая колонка содержит минуты (0-59) часа запуска команды. Вторая колонка содержит часы (0-23), в которые нужно запустить команду. Символ звездочки (*) означает «все возможные значения» и используется как шаблон.

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

Это значит, что вторая строка должна быть запущена в 6:25 утра.

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

То есть, она будет запущена в 1:17, 2:17, 3:17, и т.д.

Планирование дней

Третья, четвертая и пятая колонки определяют дни, в которые должна быть запущена команда. Третья колонка указывает день месяца от 1 до 31(будьте осторожны при планировании дней в конце месяца, так как не все месяцы имеют одинаковое количество дней).

Четвертая колонка указывает, в котором месяце нужно запустить команду (1-12), а пятая указывает день недели со значениями от 0 до 7 (0 и 7 означают воскресенье). Пятая колонка дает возможность планировать по неделям, а не по месяцам.

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

Дни недели и месяца можно также указать при помощи первых трех букв их названий. Также можно указывать диапазоны при помощи дефиса (-) и устанавливать несколько значений через запятую.

Интервал можно указать, устанавливая после значения символ /, а затем число. К примеру, чтобы выполнять команду каждый второй час, нужно установить значение «*/2» в колонке часов.

Посмотрев в crontab, можно увидеть, что третья запись запускается каждое воскресенье в 6:47 утра:

Четвертая строка запускается в первый день месяца в 6:52 утра:

Горячие клавиши планирования cron

Первые пять столбцов каждой записи можно заменить горячими клавишами. Синтаксис: символ «@» с указанием имени интервала.

К примеру, можно спланировать запуск команды каждую неделю, указав @weekly вместо создания отдельного столбца конфигураций. Также можно использовать @yearly, @monthly, @daily и @hourly.

Также есть специальный ярлык @reboot, который запускается сразу после запуска cron. Как правило, это происходит только при запуске системы, и именно поэтому его называют restart, а не cron-restart или подобно.

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

К примеру, «@monthly» запускается в полночь первого дня месяца. Это может привести к тому, что многие команды, время запуска которых указано ярлыками, будут запущены в одно и то же время. Такие события нельзя контролировать так, как обычный синтаксис планирования.

Указывание команд и пользователей с Cron

Следующие столбцы касаются непосредственного выполнения запланированных команд.

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

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

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

Использование команды run-parts и каталогов Cron

Если посмотреть на команды, указанные в системном crontab, можно увидеть упоминание о «anacron», который будет описан позже, и «run-parts».

Команда run-parts – это простая команда, которая запускает каждый исполняемый файл, расположенный внутри указанной директории. Она часто используется вместе с cron, поскольку это позволяет запускать несколько сценариев в указанное время, помещая их в одном месте.

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

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

К примеру, Ubuntu создает папки по имени «cron.daily», «cron.hourly», «cron.monthly» и «cron.weekly», в которых хранятся соответствующие скрипты.

Индивидуальные Crontab-файлы пользователя

Разобравшись с синтаксисом cron, можно использовать его для планирования задач пользователя. Это делается при помощи команды «crontab».

Поскольку команды в crontab пользователя будут запускаться с привилегиями данного пользователя, столбец «user» в индивидуальных crontab’ах не существует.

Чтобы увидеть текущий crontab, введите:

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

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

Чтобы отредактировать crontab, наберите:

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

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

К примеру, если бы в файле нужно было повторять (echo) команду «date» каждые 15 минут каждую среду, то нужно было бы внести такую строку:

*/15 * * * 3 echo «$(date)» >> /home/demouser/file

Затем можно сохранить файл, и, запустив «crontab –l», увидеть только что созданное правило:

Если нужно отредактировать crontab конкретного пользователя, можно добавить опцию «-u username». Это можно сделать только как root или как пользователь с root-привилегиями.

К примеру, если нужно что-либо внести в crontab «root», используйте:

Использование Anacron

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

Это серьезная проблема для систем, которые не могут быть включены постоянно. Потому был разработан инструмент под названием anacron. Anacron значит «анахронический», и используется для устранения этого недочета cron.

Anacron использует не такие подробные параметры, как cron. Наименьший интервал, который существует в anacron – это день. Это значит, что anacron нужно использовать как дополнение к cron, а не как замещение его.

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

Утилита anacron, как и cron, имеет таблицу планирования. Она имеет соответственное название «anacrontab» и также находится в каталоге «/etc». Рассмотрим ее формат:

Как можно заметить, ее формат похож на формат файла crontab, но она содержит меньшее количество столбцов, а также имеет некоторые отличия.

Первый столбец определяет, как часто команда должна быть запущена. Значение указывается в виде интервала в днях. Значение «1» будет работать каждый день, а значение «3» – каждые три дня.

Второй столбец определяет отсрочку выполнения команды. Дело в том, что Anacron – не демон. Он запускается в одно и то же время. Данное поле позволяет расположить выполнение команд таким образом, чтобы не все команды были запущены в одно и то же время.

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

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

Третья колонка содержит имя, по которому работа будет известна в сообщениях и лог-файлах Anacron. Четвертое поле – команда, запущенная в данный момент.

Как видно, anacron запускает некоторые из скриптов cron. Разные дистрибутивы обрабатывают это столкновение по-разному, отдавая предпочтение одной из команд и отключая действия другой.

К примеру, на Ubuntu «/etc/crontab» проверяет, доступен ли в системе anacron, и затем выполняет скрипты каталогов «cron.*» с помощью cron, если anacron не был найден.

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

Итоги

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

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

Источник

Понравилась статья? Поделиться с друзьями:

Не пропустите наши новые статьи:

  • что такое cron linux
  • Что такое credo программа
  • Что такое credentials в программировании
  • что такое cortana в windows 10 как удалить
  • Что такое cortana в windows 10 и для чего

  • Операционные системы и программное обеспечение
    0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest
    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии