Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторна робота3_2.doc
Скачиваний:
3
Добавлен:
15.11.2019
Размер:
179.71 Кб
Скачать

Планування виконання за допомогою сron і crontab

Команди at й batch є одноразовими. Для регулярного ж запуску команд у Linux існує інший інструмент — програма сrоn. Ви просто визначаєте час і дату, коли повинна запускатися та чи інша програма, у хвилинах, годиннах, днях місяця, місяцях року й днях тижня.

Сама програма сron запускається один раз при завантаженні системи. Окремі користувачі не повинні мати до неї безпосереднього доступу. Крім того, запуск сron ніколи не здійснюється вручну, шляхом введення імені програми в командному рядку, а тільки зі сценарію завантаження операційної системи.

При запуску сron (скорочення від chronograph — хронограф) перевіряє чергу завдань at і завдання користувачів у файлах crontab. Якщо нічого для запуску не знайшлося, сrоn "засинає" на одну хвилину і потім знову приступає до пошуків команди, яку варто запустити в цей момент. Велику частину часу команда сrоn проводить у "сплячому" стані, і для її роботи використовується мінімум системних ресурсів.

Щоб визначити список задач для сron, використовується команда crontab. Для кожного користувача за допомогою цієї команди створюється його власний (і єдиний) crontab-файл зі списком завдань, що знаходиться в каталозі /usr/spool/cron/crontabs і имеющий те ж ім'я, що й ім'я користувача.

Наприклад, якщо ви користувач vasja, то ваш crontab-файл буде називаться /usr/spool/cron/crontabs/vasja. Навіть якщо ви створите, наприклад, власний файл завдань з ім'ям mycron і визначите його як завдання для сron, увівши команду crontab mycron, його вміст буде перенесено у ваш файл, що знаходиться в каталозі /usr/spool/cron/crontabs.

Користувачі, яким дозволено давати завдання сrоn, перераховані у файлі /etc/cron.d/cron. allow.

Хоча ви можете створити файл завдань для сrоn за допомогою звичайного текстового редактора, не можна просто замінити їм існуючий файл завдання (у каталозі /usr/spool/cron/crontabs). Для передачі сrоn зведень про нові завдання обов'язково повинна використовуватися команда crontab.

Кожен рядок у файлі crontab містить шаблон часу і команду. Команда виконується тоді, коли поточний час відповідає приведеному шаблону. Шаблон складається з п'яти частин, розділених пробілами чи символами табуляції. При виконанні команди весь її вивід на стандартні пристрої (якщо він не переспрямований) відправляється її користувачу злектронной поштою.

синтаксис команд у файлі crontab:

хвилини години день місяця місяць_року день_тижня завдання

Перші п'ять полів представляють шаблон часу й обов'язково повинні бути присутнім у файлі. Для того щоб сrоn ігнорував те чи інше поле шаблона часу, постаньте в ньому символ зірочки (*).

У табл. Приведені припустимі значення полів записів crontab.

Таблиця . Поля записів crontab

Поля записів crontab

Поле

Діапазон

Хвилини

00-59

Години

00-23 (північ - 00)

День місяця

01-31

Місяц року

01-12

День тижня

01-07 (понеділок — 01, неділя — 07)

Ви можете створити скількох завгодно команд для сron — їхнє число нічим не обмежене.

Приклад.

Допустимо, ми хочемо сортувати і відправляти користувачу twool файл /usr/sales/weekly щопонеділка в 7:30. Відповідна запис буде виглядати так:

30 07 * * 01 sort /usr/sales/weekly | mail -s"Weekly Sales" twool

Зверніть увагу на канал між командами sort і mail у записі. Поле команди може містити канали, перенапрямок, загалом, усе, що може бути в команді, що вводиться в командному рядку оболонки. У потрібний час сrоn для виконання команди запустить стандартну оболонку (bash) і передасть їй команду для виконання.

Для того щоб визначити кілька значень у поле, використовуйте як поділяючий символ кому. Припустимо, що деяка програма chkquotes повинна виконуватися в 9, 11, 14 і 16 годин по понеділках, вівторкам і четвергам і обов'язково 10 березня і 10 вересня. У підсумку запис виглядає так:

* 09,11,14,16 10 03,09 01,02,04 chkquotes

Команда crontab має три опції командного рядка:

-е дозволяє редагувати компоненти файлу (при зтом викликається редактор, визначений у перемінної EDITOR вашої оболонки);

-r видаляє поточний crontab-файл із каталогу;

-1 використовується для виводу списку поточних завдань сrоn.

У будь-якому випадку crontab працює з вашим файлом відповідно до вашого реєстраційного імені.

У випадку використання сron як системний адміністратор, так і користувачі несуть відповідальність за коректне її використання, що не повинне, наприклад, викликати перевантаження системи. Однак не все так погано, як здається, — системний адміністратор має можливість визначити коло користувачів програм at, batch й сron, довіривши це тільки самим відповідальної з них.