Читаем Linux и UNIX: программирование в shell. Руководство разработчика полностью

Программа cron является основным системным планировщиком, служащим для выполнения различных заданий в фоновом режиме. Команда crontab позволяет пользователям создавать, редактировать и удалять инструкции для программы cron посредством специального crontab–файла. У каждого пользователя может быть свой crontab–файл, но в крупных системах администратор (пользователь root) обычно исключает данную возможность. В этом случае администратор создает вспомогательные файлы cron.deny и cron.allow, содержащие списки пользователей, которым соответственно запрещено и разрешено выполнять команду crontab.

3.1.1. Структура crontab–файла


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



1

Минуты — 0—59


2

Часы — 0—23 (0 означает полночь)


3

День месяца — 1—31


4

Месяц — 1—12


5

День недели — 0—7 {0 и 7 означает воскресенье)


6

Команда, которая должна быть выполнена


Общий формат записи таков:

минуты часы день_месяца месяц деиь_нвдели команда

Все поля разделяются пробелами.

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

Допускается также задание списка значений, разделенных запятыми. Если,

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

ввести 1, 4.

Символ звездочки (*) — это обозначение диапазона "от первого до последнего", т. е. каждую минуту, каждый день и т. д. Если указан диапазон, то можно задать для него шаг пропуска с помощью символа /. Например, запись */2 означает "каждый второй".

В crontab–файле допускаются комментарии. В начале строки комментария должен стоять символ #.

3.1.2. Примеры записей в crontab–файле


Запись

30 21 * * * /apps/bin/cleanup.sh

означает выполнение сценария cteanup.sh в каталоге /apps/bin каждый вечер в 21:30. Запись

45 4 1,10,22 * * /apps/bin/backup.sh

означает выполнение сценария backup.sh в каталоге /apps/bin в 4:45 утра 1–го, 10–го и 22–го числа каждого месяца. Запись

10 1 * * 6,0 /bin/find -name "core" — exec rm {} \;

означает выполнение команды find для удаления файлов дампа в 1:10 ночи по субботам и воскресеньям. Запись

0,30 18-23 * * * /apps/bin/dbcheck.sh

означает выполнение сценария dbchecksh в каталоге /apps/bin каждые полчаса между 18:00 и 23:00.

Запись

0 23 * * 6 /apps/bin/qtrend.sh

означает выполнение сценария qtrend.sh в каталоге /apps/bin в 23:00 каждую субботу. При выполнении команд и сценариев, указанных в crоntab–файле, следует убедиться, что корректно заданы все необходимые переменные среды. Программа cron не сделает это за вас: это не входит в ее компетенцию. Поэтому локальные переменные среды должны быть установлены вручную, в отличие от глобальных переменных, которые устанавливаются автоматически. Данная задача может быть решена непосредственно в crontab–файле за счет создания записи следующего вида:

имя_переменной=значение

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

3.1.3. Опции команды crontab


Общий формат команды crontab таков:

crontab [-u пользователь] — e -l -r



ОПЦИЯ

назначение


-u пользователь

Установка имени пользователя, для которого нужно создать


crontab–файл


-e

Активизация режима редактирования crontab–файла


-1

Отображение содержимого crontab–файла


-r

Удаление crontab–файла


Если вы хотите работать с собственным crontab–файлом, то указывать опцию — и нет необходимости.

3.1.4. Создание crontab–файла


Сначала, еще до того, как crontab–файл будет помещен в очередь заданий программы cron, необходимо установить переменную среды editor. Благодаря этому планировщик получит указание относительно того, какой редактор следует использовать при обработке crontab–файлов. Если вы предпочитаете редактор vi, откройте файл .profile или .bash_profile, находящийся в вашем начальном каталоге, и поместите в него следующие команды:

EDITOR=vi; export EDITOR

Далее создайте новый файл <имя_полъзователя>cron, где <имя_польэователя> — ваше регистрационное имя. Вот пример содержимого такого файла:

   • вывод текущей даты на экран

   • каждые 15 минут между 18:00 и 6:00

0,15,30,45 18-06 * * * /bin/echo 'date' > /dev/console

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

Чтобы поместить в очередь заданий планировщика cron свой crontab–файл, выполните команду crontab, указав в ней имя созданного файла:

$ crontab davecron

Копия файла будет помещена в каталог /var/spool/cron, а имя копии совпадет с вашим регистрационным именем (в данном случае — dave).

3.1.5. Вывод на экран содержимого crontab–файла


Для вывода на экран содержимого crontab–файла предназначена команда crontab -l:

$ crontab -l

Перейти на страницу:

Похожие книги

Компьютер для тех, кому за…
Компьютер для тех, кому за…

В наш век высоких технологий без компьютера не обходится практически ни один человек. Но что делать, если вам уже за…, а компьютер вы так и не освоили? Не стоит отчаиваться! Эта книга была написана специально для тех, кто по каким-то причинам не смог освоить его раньше. Легким и доступным языком в книге изложены основные принципы работы на компьютере. Вы узнаете, как создать документ в текстовом редакторе, выстроить таблицы и диаграммы в экселе, освоите графический редактор, который позволит вам рисовать и редактировать фото и рисунки, научитесь самостоятельно подключать принтер и печать, общаться с родными и друзьями по скайпу и ICQ, узнаете, какие бывают игры, как выбрать игру для себя, и многое-многое другое.Никогда не поздно осваивать что-то новое! А уж тем более — компьютер. Он откроет вам целый мир безграничных возможностей. Не упустите свой шанс узнать что-то новое и интересное — дайте компьютеру прочно войти в вашу жизнь. Ведь пользоваться им так же просто, как и обычным телефоном, только в тысячу раз интереснее!

Оксана Грибова

Зарубежная компьютерная, околокомпьютерная литература / Интернет / Программное обеспечение / Прочая компьютерная литература / Книги по IT