Anacron linux что это

Anacron linux что это

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

Чтобы использовать службу Anacron, вы должны установить RPM пакет anacron . Чтобы узнать, установлен ли этот пакет, выполните команду: rpm -q anacron .

Задачи Anacron хранятся в файле конфигурации /etc/anacron . Каждая строка этого файла соответствует задаче и имеет формат:

period delay job-identifier command

period — Период, частота (в днях) выполнения команды

delay — Задержка, этот параметр определяет паузу (в минутах)

job-identifier — Идентификатор задачи, используемый в сообщениях Anacron, а также при формировании имени файла задания с отметкой времени, может содержать любые знаки, за исключением пробела и наклонных черт вправо.

command — команда, выполнение которой запланировано

Для каждой задачи Anacron определяет, выполнялась ли она в период, указанный в поле period файла конфигурации. Если задача не выполнялась в указанный период, Anacron выполняет команду, указанную в поле command через промежуток времени, указанный в поле delay , в минутах.

Выполнив задачу, Anacron записывает дату в файл с отметкой времени и сохраняет его в каталоге /var/spool/anacron . Сохраняется только дата (не время), а значение поля job-identifier используется для формирования имени файла, помещаемого в /var/spool/anacron.

Переменные окружения, такие как SHELL и PATH , задаются в начале файла конфигурации /etc/anacron , как и в файле конфигурации cron.

Файл конфигурации по умолчанию выглядит так:

# /etc/anacrontab: configuration file for anacron # See anacron(8) and anacrontab(5) for details. SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin # These entries are useful for a Red Hat Linux system. 1 5 cron.daily run-parts /etc/cron.daily 7 10 cron.weekly run-parts /etc/cron.weekly 30 15 cron.monthly run-parts /etc/cron.monthly

Рисунок 22-1. Файл anacrontab по умолчанию

Чтобы запустить службу anacron, выполните команду: /sbin/service anacron start . Чтобы остановить её, выполните команду: /sbin/service anacron stop . Рекомендуется, настроить запуск службы при загрузке системы. Обратитесь к Главе 8 за указаниями по настройке автоматического запуска службы anacron при загрузке системы.

Источник

команда anacron в linux с примерами

Команда anacron используется для периодического выполнения команд с частотой, указанной в днях. Его главное преимущество перед cron заключается в том, что его можно использовать на машине, которая не работает непрерывно. В cron, если машина не запускается во время запланированного задания, она пропустит ее, но anacron немного отличается, так как сначала проверяет отметку времени задания, а затем решает, запускать его или нет, а отметка времени > = n (n — это определенное количество дней), затем запускает его по истечении указанного времени .

В основном он состоит из двух важных файлов:

    / etc / anacrontab : содержит спецификации работы.

  • Смотрите строку SHELL = / bin / sh . Он использует sh не bash, вы не можете запускать сценарии bash.
  • Таблица в конце представляет другое планирование. Первый столбец — это количество дней (n), то есть период, а второй — задержка в минутах.
  • / var / spool / anacron : этот каталог используется Anacron для хранения файлов меток времени. Он представляет временную метку для разных категорий работ, то есть ежедневных, еженедельных, ежемесячных и т. Д.

    Синтаксис:

    Параметры:

    • f: используется для принудительного выполнения заданий, игнорируя отметки времени.
    • u: обновлять только метки времени заданий до текущей даты, но ничего не запускать.
    • s: Сериализация выполнения заданий. Anacron не начнет новую работу до завершения предыдущей.
    • n: запускать задания сейчас. Игнорировать любую задержку.
    • d: не переходить на задний план В этом режиме Anacron будет выводить информационные сообщения в виде стандартной ошибки, а также в системный журнал. Выход рабочих мест отправляется по почте, как обычно.
    • q: подавить сообщения к стандартной ошибке. Применимо только с -d .
    • V (Использовать указанный anacrontab): распечатать информацию о версии и выйти.
    • h (Использовать указанный anacrontab): распечатать короткое сообщение об использовании и выйти.

    Замечания:

      Вы можете добавить любой скрипт в etc / cron.daily или etc / cron.weekly или cron.monthly directory.but помните, что скрипт должен быть не bash.

  • Не забудьте дать исполняемые права на ваши файлы sudo chmod + x filename .
  • Сценарии в каталогах автоматически выполняются в зависимости от того, в каком каталоге они находятся.
  • Примеры:

      Изменение метки времени работы. Обратите внимание на изменение значений меток времени.

    Выполнение силы исполнения. Обратите внимание на задержку.

    Серийное исполнение.

    Распечатать информацию о версии.

    Распечатать сортировать сообщение об использовании.

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

    Источник

    Планировщики Cron и Anacron

    В Linux (и в целом в Unix) предусмотрены два планировщика запуска скриптов по расписанию — Cron (синхронный) и Anacron (асинхронный или анахроничный).

    Если Cron предназначен для периодического запуска задач в заданный МОМЕНТ времени, то Anacron выполняет задачи в указанный ИНТЕРВАЛ времени.

    Читайте также:  Монтирование яндекс диска linux

    Про Cron знают все и он устанавливается в любой системе по умолчанию. Anacron же не всегда доступен по умолчанию и известен не всем. Он удобен тогда, когда некий скрипт нужно обязательно запустить в течение дня, недели или месяца, при этом сам момент запуска значения не имеет. Это бывает необходимо, если компьютер периодически приходится выключать. Anacron «просыпается» каждый час и проверяет, был ли выполнен в указанный интервал времени скрипт, заданный в файле конфигурации /etc/anacrontab, и если нет, то выполняет его.

    В Centos 7.2 Anacron предустановлен даже в минимальной конфигурации сервера (в отличие, например, от Ubuntu 14.04). Его наличие слегка запутало меня, поскольку после установки программы для поиска руткитов Rkhunter я стал получать на почту отчёты о сканировании, хотя в файлах настройки Cron строчка отсылки отчётов была закомментирована. Более того, отчёты приходили почему-то между 3 и 4 часами ночи и я терялся в догадках о причинах такой хронологии. Кстати , если вы работаете в панели ISPmanager, то под планировщиком там подразумевается только Cron и задачи, запланированные через Anacron, оказываются скрытыми от пользователей.

    Пересмотрев все файлы и директории конфигурации Cron /etc/crontab, /var/spool/crontab/* и /etc/cron.d, я вспомнил, наконец, про существование Anacron и обнаружил, что в его конфигурационном файле /etc/anacrontab был прописан запуск заданий из папки /etc/cron.daily.

    В переменной START_HOURS_RANGE был указан разрешённый интервал запуска скриптов по умолчанию в течение дня, и он начинался как раз с 3 часов ночи:

    А вот и строчка запуска скриптов из папки /etc/cron.daily, в том числе Rkhunter:

    1 5 cron.daily nice run-parts /etc/cron.daily

    1 — запускать с периодичностью в 1 день

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

    cron.daily — название задачи, необходимое для отслеживания её в логах (в зависимости от дистрибутива /var/log/syslog, /var/log/cron).

    nice run-parts /etc/cron.daily — команда с аргументами или название скрипта

    В данном случае ежедневно запускаются все скрипты, находящиеся в директории /etc/cron.daily, хотя в файле конфигурации /etc/crontab самого Cron этого в явном виде не прописано.

    Вот пример логов Anacron в файле /etc/log/cron:

    Nov 15 00:01:01 userX anacron[31473]: Anacron started on 2015-11-16
    Nov 15 00:01:01 userX anacron[31473]: Normal exit (0 jobs run)
    Nov 15 01:01:01 userX anacron[1950]: Anacron started on 2015-11-16
    Nov 15 01:01:01 userX anacron[1950]: Normal exit (0 jobs run)
    Nov 15 02:01:01 userX anacron[4510]: Anacron started on 2015-11-16
    Nov 15 02:01:01 userX anacron[4510]: Normal exit (0 jobs run)
    Nov 15 03:01:01 userX anacron[7025]: Anacron started on 2015-11-16
    Nov 15 03:01:01 userX anacron[7025]: Will run job `cron.daily’ in 17 min.
    Nov 15 03:01:01 userX anacron[7025]: Jobs will be executed sequentially
    Nov 15 03:18:01 userX anacron[7025]: Job `cron.daily’ started
    Nov 15 03:27:09 userX anacron[7025]: Job `cron.daily’ terminated
    Nov 15 03:27:09 userX anacron[7025]: Normal exit (1 job run)

    Из лога видно, что Anacron запускается каждый час, но первые 3 часа ему задачи выполнять запрещено (0 jobs run). В начале же четвёртого часа он объявляет о том, что спустя 17 минут запустит задачу cron.daily (хотя минимальная задержка задана в 5 минут).

    Если задачи Anacron не запускаются

    По мере работы с Anacron оказалось, что программа это довольно капризна и это не только моё мнение. По непонятным причинам некоторые задания, указанные в конфигурационном файле, могут не стартовать, тогда как другие выполняются нормально. Я выявил следующую закономерность: если в самом начале конкретного задания указывать не цифру (1 для дня и 7 для недели), а кодовое обозначение @daily или @weekly, то задание чаще всего отрабатывает нормально.

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

    Источник

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

    Что такое Cron?

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

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

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

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

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

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

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

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

    Читайте также:  Браузер сфера mac os

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

    Чтение Crontab

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

    less /etc/crontab
    SHELL=/bin/sh
    PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
    # m h dom mon dow user command
    17 * * * * root cd / && run-parts —report /etc/cron.hourly
    25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts —report /etc/cron.daily )
    47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts —report /etc/cron.weekly )
    52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts —report /etc/cron.monthly )

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

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

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

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

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

    # m h dom mon dow user command

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

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

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

    25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts —report /etc/cron.daily )/code>

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

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

    17 * * * * root cd / && run-parts —report /etc/cron.hourly

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

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

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

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

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

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

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

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

    47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts —report /etc/cron.weekly )

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

    52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts —report /etc/cron.monthly )

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Читайте также:  Warning windows x64 detected pio mode supported on windows x86 only ssd

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

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

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

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

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

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

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

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

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

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

    crontab -e
    no crontab for demouser — using an empty one
    Select an editor. To change later, run ‘select-editor’.
    1. /bin/nano

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

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

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

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

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

    crontab -l
    . . .
    . . .
    */15 * * * 3 echo «$(date)» >> /home/demouser/file

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

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

    sudo crontab -u root -e

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

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

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

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

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

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

    less /etc/anacrontab
    # /etc/anacrontab: configuration file for anacron
    # See anacron(8) and anacrontab(5) for details.
    SHELL=/bin/sh
    PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
    # These replace cron’s entries
    1 5 cron.daily nice run-parts —report /etc/cron.daily
    7 10 cron.weekly nice run-parts —report /etc/cron.weekly
    @monthly 15 cron.monthly nice run-parts —report /etc/cron.monthly

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

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

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

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

    1 5 cron.daily nice run-parts —report /etc/cron.daily

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

    7 10 cron.weekly nice run-parts —report /etc/cron.weekly

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

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

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

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

    Итоги

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

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

    Источник

    Оцените статью