Составление расписания заданий
Составление расписания - задача несложная. Расписание размещается в отдельном файле crontab. В каждой строке файла помещается задание, которое должно быть запущено в определенное время.
Рассмотрим формат записей файла crontab.
time-date command
Часть time-date (время-дата) состоит из пяти числовых полей, разделенных пробелами и определяющих время запуска задания. Это следующие поля (слева направо).
Для удобства заполнения указанных полей введены следующие правила.
Примеры времени-даты
Рассмотрим несколько примеров заполнения полей времени-даты.
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:
->богу, уже пятница%%Я.
предписывает отправлять сообщение электронной почты:
Слава богу, уже пятница Я по адресу armand@landegg. edu каждую пятницу в 2.10 пополудни.
Редактирование файла crontab
Файл crontab редактируется командой crontab -e. Возможны два подхода: создание нового файла со всеми записями, которые должны входить в файл crontab, с последующей его записью на диск под этим именем по команде crontab; или непосредственное редактирование файла по команде crontab -e.
Запись из файла
Для записи содержимого файла crontab из другого файла необходимо создать этот другой файл (в привычном текстовом редакторе) со всеми записями, из которых должен состоять файл crontab. Это могут быть, к примеру, следующие две записи.
->богу, уже пятница%%Я.
Созданному файлу следует присвоить подходящее имя, например с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
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