Составление расписания заданий
Составление расписания - задача несложная. Расписание размещается в отдельном файле crontab. В каждой строке файла помещается задание, которое должно быть запущено в определенное время.
Рассмотрим формат записей файла crontab.
time-date command
Часть time-date (время-дата) состоит из пяти числовых полей, разделенных пробелами и определяющих время запуска задания. Это следующие поля (слева направо).
Минуты.
Допустимые значения: 0-59.
Часы.
Допустимые значения: 0-23.
День месяца.
Допустимые значения: 0—31.
Месяц.
Допустимые значения: 0—12. Месяц можно указать тремя первыми буквами его (английского) названия.
День недели.
Допустимые значения: 0—7, где 0 и 7 - воскресенье.
Для удобства заполнения указанных полей введены следующие правила.
Можно указывать значения в виде численных интервалов. К примеру, интервал 1—3 в поле часов означает 1.00, 2.00 и 3.00 пополуночи, 2—4 в поле дня недели- вторник, среду или четверг.
Интервалы можно задавать с шагом больше единицы. Например, чтобы указать каждый второй час, начиная с полуночи, следует установить интервал 0—23 с шагом 2 через косую черту: 0-23/2.
ЗвеЗдочка (*) указывает полный интервал значений поля - от минимального до максимального. Например, в поле дня месяца звездочка означает интервал 0—31, в поле дня недели - 0—7.
День недели или месяц можно указать первыми тремя буквами его (английского) названия.
Примеры времени-даты
Рассмотрим несколько примеров заполнения полей времени-даты.
0 1 Запуск задания ежедневно в 1.00 пополуночи
30 14 *
*
0 Запуск задания по воскресеньям в 2.30 пополудни
Запуск задания в первый полдень каждого месяца
0.12 * 1. mоn Запуск задания в полдень каждого понедельника января каждого года
0 12 2 feb * Запуск задания в полдень второго февраля каждого года
Поле command
Поле
command
(команда) отделено от полей
времени-даты
одним или несколькими пробелами и простирается до конца строки. Команды обрабатываются оболочкой /bin/sh.
Например, следующая запись в файле crontab предусматривает ежедневный запуск программы /usr/local/bin/backupB 1.00 пополуночи.
0 1 * * * /usr/local/bin/backup
Некоторым командам (например, mail) требуется ввод информации с устройства стандартного ввода. Это указывается при помощи знака процента (%). Первый такой знак обозначает начало стандартного ввода, каждый последующий — смену строки.
Таким образом, следующая запись в файле crontab:
30 14 * * fri /bin/mail -s "TGIF" armand@landegg.еdu%Слава
->богу, уже пятница%%Я.
предписывает отправлять сообщение электронной почты:
Слава богу, уже пятница Я по адресу armand@landegg. edu каждую пятницу в 2.10 пополудни.
Редактирование файла crontab
Файл crontab редактируется командой crontab -e. Возможны два подхода: создание нового файла со всеми записями, которые должны входить в файл crontab, с последующей его записью на диск под этим именем по команде crontab; или непосредственное редактирование файла по команде crontab -e.
Запись из файла
Для записи содержимого файла crontab из другого файла необходимо создать этот другой файл (в привычном текстовом редакторе) со всеми записями, из которых должен состоять файл crontab. Это могут быть, к примеру, следующие две записи.
0 1 * * * /usr/local/bin/backup
30 14 * * fri /bin/mail -s "TGIF" armand@landegg.edu%Cловa
->богу, уже пятница%%Я.
Созданному файлу следует присвоить подходящее имя, например сron jobs. После того, как указанный файл создан, его содержимое необходимо записать в файл crontab командой
$ crontab cronjobs
Содержимое файла cronjobs полностью заменит содержимое файла crontab данного пользователя. Используя этот метод, любой пользователь может редактировать свой файл crontab. Корневой пользователь обладает особым правом редактировать файлы crontab остальных
пользователей. Редактирование чужого файла указывается флажком -и. Например, по команде
# crontab -u
username
cronjobs
файл cronj obs записывается как файл crontab пользователя username.
Непосредственное редактирование файла crontab
Команда crontab позволяет избежать многоступенчатой операции с созданием отдельного файла. Если ввести команду crontab с флажком -е, можно редактировать файл crontab непосредственно.
По умолчанию по команде crontab с флажком -е файл crontab загружается в редактор vi. Редактор vi - мощный, хотя и сложный инструмент, популярный среди опытных пользователей Unix. Тот, кто предпочитает другой редактор, например xedit, может установить соответствующее значение переменной среды EDITOR.
$ export EDITOR=xedit
После этого ввод команды
$ crontab -е
приводит к открытию файла crontab в указанном редакторе (рис. 17.1).
Рис. 17.1.
Редактирование файла crontab в редакторе xedit
Подобно тому, как обычный пользователь может редактировать собственный файл crontab, корневой пользователь может редактировать файлы crontab остальных пользователей. Для этого используется команда
$ crontab -u user-name -e
Просмотр файла crontab
Для просмотра содержимого файла crontab введите команду crontab с флажком -1.
$ crontab -1
# НЕ РЕДАКТИРУЙТЕ ЭТОТ ФАЙЛ - редактируйте главный файл, затем переус-
# танавливайте. (/tmp/crontab.555 lnstalled on Mon Jul 13 00:07:05 2001)
# (Cron verslon - $ld: crontab.c,v 2.13 1994/01/17 03:20:37 vlxle Exp $) 0 1 * * * /usr/local/bln/backup
30 14 * * frl /bln/mall -s "TGlF" armand@landegg.ес1и%Слава богу, уже пятница%%Я
Обратите внимание на строки комментариев, начинающиеся с символа "#". Корневой пользователь может просматривать файлы crontab остальных пользователей.
#
crontab -u username -1
Удаление файла crontab
Чтобы удалить содержимое своего файла crontab, пользователь должен ввести команду crontab с флажком -r.
$ crontab -r
Корневой пользователь может удалять файлы crontab остальных пользователей.
#
crontab -u
user-name
-r