Планувальник регулярних завдань cron
Шаблон:Інші uses2 {{}} Нижньому регістрі
Cron є погодинною планувальника завдань в Unix-подібні комп'ютера операційна система s. Cron дозволяє користувачам планувати виконання завдань (команд або скрипт ів) для періодичного запуску в певний час або дату. Він широко використовується для автоматизації підтримки та адміністрування системи, хоча її загального призначення, характер означає, що вона може бути використана для інших цілей, таких як підключення до Інтернет і завантаження листи. <ref> [HTTP : / / www.unixgeeks.org/security/newbie/unix/cron-1.html Новачок Введення в хрон] </ посилання>
Зміст |
Огляд
Cron двіжеткронтаб(хрон таблицю) файлу, файл конфігурації, який визначає оболонки Команди для періодичного запуску за заданим графіком. Кронтаб файли зберігаються де списки робочих місць та інші вказівки, щоб хрон демон зберігаються. Користувачі можуть мати свої власні окремі файли кронтаб і часто існує система широкого файл кронтаб (зазвичай в / і т.д. </ код> або підкаталог <code> / і т.д. </ код>), який тільки системні адміністратори можуть редагувати.
Кожен рядок кронтаб файл представляє робота і складається з CRON вираз, за яким слідує команда оболонки для виконання. Деякі реалізації хрон, як, наприклад, у популярній 4-BSD видання написаний Пол Vixie і включений в багато дистрибутиви Linux, додати шосте поле в форматі: ім'я користувача, що конкретна робота буде у віданні (за умови існування користувачів і права доступу). Це дозволено лише в системі crontabs, а не в інші, які, кожен призначений тільки одному користувачу в налаштуванні. Шосте поле також іноді використовується длягодвместо імені користувача облікового запису, демон nncron для вікон робить це. Однак Vixie Cron не використовує шостого стовпця, як рік і, якщо використовується лікуватимуть року як команда для запуску і зазнають невдачі.
Для "день тижня" (поле 5) як 0 і 7 вважаються неділю, хоча в деяких версіях Unix, такі як AIX не список "7" у якості прийнятного в довідкову статтю. Хоча зазвичай робота виконується, коли час / дата полів спеціфікаціівсематча поточний час і дату, є один виняток: якщо обидва "день місяця" і "день тижня" обмежені (не "*" ), тоілі"день місяця" поле (3) або"день тижня" поле (5) мають збігатися поточний день.
Приклади
Наступною рядку вказується, що журнал Apache помилка повинна бути очищена через одну хвилину після півночі (00:01) кожного дня місяця, кожен день тижня, за умови, що за замовчуванням оболонка для хрон користувач Bourne оболонки сумісний:
<source lang="bash"> 1 0 * * * Printf> / WWW / Apache / Журнали / error_log </ Джерела>
Наступний рядок змушує програму користувача <code lang="bash"> test.pl </ код> - можливо, Perl скрипт - для запуску кожні дві години, а саме опівночі, 2 години ночі, 4 ранку, 6 ранку, 8 ранку , і так далі:
<source lang="bash"> 0 * / 2 * * * / головна / ім'я користувача / test.pl </ Джерела>
Стандартні визначення планування
Є кілька спеціальних зумовлених значень, які можна використовувати для заміни CRON вираження.
- | Вступ! Опис! Еквівалентна | - | | Виконати один раз на рік, опівночі, 1 січня | | <code> 0 0 1 1 * </ код> | - | | Виконати один раз на місяць, опівночі, в першу місяць | | <code> 0 0 1 * * </ код> | - | | Виконати один раз на тиждень, опівночі в неділю | | <code> 0 0 * * 0 </ код> | - | | Виконати один раз на добу, опівночі | | <code> 0 0 * * * </ код> | - | | Виконати один раз на годину, початок годину | | <code> 0 * * * * </ код> | - | | Запуск при завантаженні | | |
---|
* * * * * Команда для виконання ┬ ┬ ┬ ┬ ┬ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └ ─ ─ ─ ─ ─ день тижня (0 - 6) (Неділя = 0) │ │ │ └ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ місяця (1 - 12) │ │ └ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ день місяця (1 - 31) │ └ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ годину (0 - 23) └ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ хв (0 - 59)
<code> @ перезавантаження </ код> налаштовує виконання завдання один раз, коли демон запускається. З хрон, як правило, ніколи не перезавантаження, це зазвичай відповідає машині, завантажиться. Така поведінка забезпечується в деяких варіаціях хрон, як, наприклад, передбачено в Debian, <ref name="debiancron"> # 30 помилки . debian.org </ вих> так то просто перезапуск демона не повторний <code> @ перезавантаження </ код> робочих місць.
<code> @ перезавантаження </ код> може бути корисно, якщо є необхідність, щоб запустити сервер або демон під конкретного користувача, а користувач не має доступу до налаштування поч, щоб запустити програму.
Cron дозволів
Наступні два файли грають важливу роль:
- / І т.д. / cron.allow- Якщо цей файл існує, то ви повинні бути перераховані в ньому (ваше ім'я користувача повинно бути вказано), щоб мати можливість використовувати хрон робочих місць.
- / І т.д. / cron.deny- Якщо cron.allow файл не існує, але / і т.д. / cron.deny файл існує, то ви не повинні бути перераховані в / і т.д. / cron.deny файл для того щоб використовувати хрон робочих місць.
Будь ласка, зверніть увагу, що якщо жоден з цих файлів існує, то в залежності від сайту залежить від параметрів конфігурації, тільки супер-користувач буде мати можливість використовувати хрон робочих місць, або всі користувачі матимуть можливість використовувати хрон робочих місць.
Часовий пояс обробки
У більшості реалізацій хрон просто інтерпретувати кронтаб записи в часовий пояс системи настройки, при яких хрон демон сам бігти. Це може бути джерелом суперечки, якщо велика машина багатокористувацької є користувачі в декількох часових поясах, особливо, якщо часовий пояс за замовчуванням включає в себе системи може викликати плутанину Літній час. Таким чином, реалізація може хрон спеціального випадку будь-яка "TZ = <timezone>" змінної оточення лінії налаштування в користувальницькому crontabs, інтерпретації наступних записів кронтаб щодо цього часового поясу. <ref Name="solaristzcrontab"> sun.com / chrisg / запис / timezone_aware_cron_finally_pushed Sun.com </ посилання>
Історія
Ранні версії
Крон в Version 7 Unix, написаної Брайан Керніган, була системна служба (пізніше названа Демони) викликається з <code> / і т.д. / inittab </ Код>, коли операційна система увійшла в многопользовательском режимі. Його алгоритм був простий:
- Читати <code> / USR / і т.д. / кронтаб </ код>
- Визначте, якщо будь-які команди будуть працювати на поточну дату і час, і якщо так, виконайте їх, як суперкористувача, коріння.
- Сну протягом однієї хвилини
- Повторити з кроку 1.
Ця версія була основною хрон і надійний, але він також споживаних ресурсів чи знайти будь-яку роботу, робити чи ні. В експерименті Університету Пердью в кінці 1970-х продовжити службу крон на всі 100 користувачів з поділом часу VAX, було встановлено на місце занадто багато навантаження на систему.
Багатокористувацький можливість
<! - Примітка для майбутніх авторів цього змісту. Я знаю більше про цю версію крон, що винайшов її, і так визнають, що зміст з рівноваги. Було б здорово, щоб детальніше розповісти про інших версіях ->
Наступна версія хрон, з виходом Unix System V, був створений, щоб розширити можливості хрон для всіх користувачів системи Unix, а не тільки суперкористувачем. Хоча це може здатися тривіальним сьогодні з більшістю Unix та Unix-подібних систем з потужними процесорами і невеликим числом користувачів, у той час, він вимагає нового підходу до 1 MIPS система, що має приблизно 100 облікових записів користувачів.
У серпні 1977 року питання про комунікацій ACM, WR Франта і Курт Малий опублікував статтю під назвою "ефективну структуру даних для моделювання набір подій" описує події структура даних черзі для дискретних керованих подіями системах моделювання , які продемонстрували "продуктивність вище, ніж зазвичай використовуються прості алгоритми пов'язані списку," хорошу поведінку даного неоднорідного розподілу часу, а гіршому випадку складності <math> O \ вліво (\ SQRT {п} \ право ) </ математики>, "п"-число подій в черзі.
Аспірант, Роберт Браун, рецензування цієї статті, визнані паралель між хрон і дискретні події тренажери, і створив реалізації Франта-Малий списку подій менеджера (ELM) для експериментів. Дискретна тренажери подій запускаються в "віртуальне час", пілінг подій з чергою подій як можна швидше і просування їх уявлення про «зараз», щоб у призначений час наступного події. При запуску події симулятора в режимі «реального часу», а не віртуальному часу, версія хрон був створений, що провів більшу частину свого часу сну, чекаючи моменту, коли завдання на чолі списку подій повинен був бути страчений.
Наступний навчальний рік приніс нові студентів в аспірантуру, в тому числі Кіт Вільямсон, який приєднався до систем співробітникам відділу комп'ютерних наук. Як "теплий завдання до" Браун попросив його, щоб конкретизувати прототип крон у виробництво послуг, і це багатокористувацький крон пішли в експлуатацію в Пердью в кінці 1979 року. Ця версія хрон повністю заміщені <code> / і т.д. / хрон </ код>, яка була у використанні на VAX Комп'ютерні науки департаменту 11/780 під керуванням 32 / В.
Алгоритм, який використовується цим хрон виглядає наступним чином:
- При запуску, шукайте файл з ім'ям <code>. Кронтаб </ код> у домашніх каталогів усіх власників рахунків.
- Для кожного знайденого файла кронтаб, визначити наступний раз в майбутньому, що кожна команда повинна бути запущена.
- Місце ці команди на Франта-Малий список подій з відповідними часу та їх "п'ять поле" час специфікатор.
- Введіть головний цикл:
- # Вивчіть завдання вступу на чолі черги, обчислити, як далеко в майбутньому вона буде працювати.
- # Сну за цей період часу.
- # На пробудження і після перевірки правильний час, щоб завдання було виконано на чолі черги (на задньому плані) з привілеями користувача, який її створив.
- # Визначити наступний раз в майбутньому для виконання цієї команди і помістити його назад у списку подій на той момент вартості.
Крім того, демон буде реагувати на SIGHUP сигнали перевірити файли, змінені кронтаб і буде графік спеціального "прокинутися подій" на годину і півгодини шукати змінені файли кронтаб. Багато деталей опущені про неточність комп'ютерного часу доби стеження, Unix сигналізації планування, явні часу доби змінюється, і процес управління, які складають більшість рядків коду в цій хрон. Це хрон також захопили висновок STDOUT'і'STDERR і по електронній пошті будь-який вихід в кронтаб власника.
Ресурси, що споживаються цієї хрон масштабі тільки з обсягом роботи вона дається і не по своїй природі більше, ніж час, за винятком періодично перевіряти на предмет змін.
Вільямсон закінчив навчання і покинув університет магістра наук в галузі комп'ютерних наук і приєднався до AT & T Bell Labs в Мюррей-Хілл, штат Нью-Джерсі, і взяв цей хрон з ним. У Bell Labs, він та інші включені в Unix <code> </ код> команду в хрон, переїхав кронтаб файли з домашніх каталогів користувачів (які не були машино-залежний) і в загальній розміщення з директорії спула, і необхідності додав <code> кронтаб </ код> команду, щоб дозволити користувачам копіювати їх crontabs в цей каталог котушку.
Ця версія хрон пізніше з'явився на колишньому рівні в Unix System V і в BSD і їх похідні, Операційна система Solaris з Sun Microsystems, IRIX з [[Silicon Graphics] ], HP-UX з Hewlett-Packard та IBM AIX. Технічно, оригінальні ліцензії на ці реалізації повинні бути з Фондом Пердью досліджень, які фінансували роботу, але це відбувалося в період, коли мало уваги було приділено таким питанням.
Сучасні версії === === З появою Проект GNU та Linux, нові crons з'явилися. Найбільш поширеним з них є Vixie крон, спочатку кодується Пол Vixie в 1987 році. Версія 3 'Vixie хронбил випущений в кінці 1993 року. Версія 4.1 була перейменована в' ISC Cronі був випущений в січні 2004 року. Версія 3, при цьому деякі дрібні виправлення, використовується в більшості дистрибутивів Linux і BSD.
У 2007, RedHat роздвоєною Vixie-хрон 4,1 до проекту cronie і включав Anacron 2,3 в 2009 році.
Інші популярні реалізацій включають Anacron, dcron і Fcron. Тим не менш, Anacron не є самостійною програмою крон; він спирається на іншу програму хрон назвати це для того, щоб виконувати. dcron була робота засновника Dragonfly BSD Метт Діллон, код в даний час підтримується Джим Прайор.
webcron рішення графіки повторюваних завдань для виконання на регулярній основі, де б хрон реалізації не можуть бути доступні в веб-хостинг навколишнього середовища.
CRON вираз
CRON вираз є рядком, що містить 5 або 6 полів, розділених пробілами <ref> Ubuntu Cron Howto </ посилання>, який представляє безліч разів, як правило, в якості Графік виконати деякі рутинні.
Формат
- | Ім'я поля | Обов'язкове? | Допустимі значення | Допускаються спеціальні символи | - | Хвилини | Так | 0-59 | * /, - | - | Час роботи | Так | 0-23 | * /, - | - | День місяця | Так | 1-31 | * /, -? L W | - | Місяць | Так | 1-12 або січень-грудень | * /, - | - | День тижня | Так | 0-6 або ВС-SAT | * /, -? L # | - | Рік | Немає | 1970-2099 | * /, - |
---|
У деяких Вашого CRON форматі є і'секунд поле на початку картини <ref> Шаблон:Посилаються сайт </ посилання>.
=== === Спеціальні символи
- Asterisk (*)
- Зірочкою вказує, що хрон вираз буде відповідати всім значень поля, наприклад, використовуючи зірочку в 4-м поле (місяць) буде означати кожен місяць.
- Слеш (/)
- коса риса використовується для опису кроком діапазонах. Наприклад 3-59/15 в області першої (хвилин) означатиме 3-й хвилині години і кожні 15 хвилин після цього. Форма "*/..." еквівалентна формі "0-59 /...".
, Кома (,): коми використовуються для розділення елементів списку. Наприклад, за допомогою "пн, ср, пт" у 6-му полі (день тижня) буде означати, понеділках, середах і п'ятницях.
- Дефіс (-)
- Дефіс використовується для визначення діапазонів. Наприклад, в 2000-2010 означатиме щороку в період між 2000 і 2010 роках н.е. включно.
- Знак запитання
- (?) '?' символ використовується опустити специфікації значення протягом дня кожного місяця і дня тижня полів. Так як це не діє, щоб вказати значення для обох полів, '?' стає необхідним опустити один або ('*' вважається певне значення). Примітка: знак питання нестандартним характером, вона не може бути дозволено в деяких версіях (наприклад, Cron Демон встановлюється разом з Ubuntu).
, L: 'L' означає «останній». При використанні на день-в-тиждень поля, воно дозволяє вказати конструкцій, таких як "минулої п'ятниці" у цьому місяці. У день кожного місяця поле, він визначає останній день місяця.
- W
- символ 'W', допускається протягом дня кожного місяця поле. Цей символ використовується для вказівки дня тижня (понеділок-п'ятниця) найближчий день. Як приклад, якщо ви повинні були вказати "15W" як значення протягом дня кожного місяця поле, його значення: "найближчий будній день з 15-го числа місяця". Так, якщо 15-й припадає на суботу, тригер буде вогонь у п'ятницю 14-го. Якщо 15-го неділі, тригер буде спрацьовувати в понеділок 16-го. Якщо 15-й є вівторок, то він буде стріляти у вівторок 15-го. Однак, якщо Ви вкажете "1W" в якості значення за день кожного місяця, і перший припадає на суботу, тригер буде спрацьовувати в понеділок 3-й, оскільки вона не буде "стрибати" по межі днів місяця. Символ 'W' можна вказувати тільки коли день кожного місяця протягом одного дня, а не діапазон або список днів.
- Хеш (#)
- '#', допускається протягом дня-в-тиждень поле, а повинна слідувати число від одного до п'яти. Це дозволяє вказати конструкцій, таких як "друга п'ятниця" у цьому місяці. Шаблон:Правити
Приклади
Кожну хвилину
* * * * *
23:00:00 кожного буднього вечір
0 23? * Пн-пт
У 2003 році на 11-й по 26-е число кожного місяця в січні-червні кожну третю хвилину, починаючи з минулого 2 січня ранку, з 9 ранку і 10 вечора
2-59/3 1,9,22 11-26 1-6? 2003
! Хвилин! Годинники! День місяця! Місяць! День тижня! Рік <ref group="ex"> Додатково </ посилання> | - | | 30 | | 0 / 2 або * / 2 <ref group="ex"> Деякі версії Cron не може приймати значення попереднього "/", якщо це не вибір, наприклад " 0 ". Альтернативою було б замінити нулем з зірочкою </ посилання> |. | * | | * | |? | | * | - | | 45 | | 23 | | * | | * | |? | | * | - | | 0 | | 1 | |? | | * | | 0 | | * | - | | 0 | | 10,22 | | L | | * | |? | | * |
---|
Див також
Посилання
{{}} Reflist
Посилання
- Шаблон:Чоловік
- [Http: / / www.gnu.org/software/mcron/ GNU хрон] (mcron)
- [Ftp: / / ftp.isc.org/isc/cron/cron_4.1.shar ISC Cron 4.1]
- [Https: / / fedorahosted.org / cronie Fedorahosted.org] - вилку Vixie-хрон 4,1 і 2,3 Anacron від RedHat проект
- [Http: / / portal.acm.org / citation.cfm? Id = 359763.359801 & coll = ACM & dl = ACM & CFID = 63647367 & CFTOKEN = 55814330 ACM Електронна бібліотека - Франта, Малий, "ефективна структура даних для моделювання набір подій"] (необхідне ACM пабів підписка)
- [Http: / / www.cyberciti.biz/faq/how-do-i-add-jobs-to-cron-under-linux-or-unix-oses/ UNIX / Linux хрон підручник] - короткий посібник для UNIX подібних операційних систем з прикладів сценаріїв оболонки.
- [Http: / / www.markus-gattol.name/ws/time.html # крон Все про Cron на одній сторінці] - сторінка покриття Cron, починаючи з теорії і закінчуючи практичними прикладами про його використання.
- [Http: / / www.jimpryor.net / linux / dcron.html Діллона хрон] (dcron)
- [Http: / / livecronjobs.com Cron Reference] - Інформація про хрон і його використання