Вход/Регистрация
Linux: Полное руководство
вернуться

Аллен Питер В.

Шрифт:

Создавать расписания и ставить задания в очередь на выполнение имеют право все, кому это явно не запрещено суперпользователем.

Сердцем системы периодического выполнения служат демоны atd и cron (в Red Hat-совместимых дистрибутивах он называется crond).

9.4.1. Запуск задания в назначенное время: команда at

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

Для постановки задания в очередь для выполнения в указанное время служит команда at:

at [-f <файл>] ЧЧ:ММ

Файл — это исполняемый файл либо сценарий командного интерпретатора. Если он не указан, то вы должны будете вводить команды в командной строке, завершая ввод, как обычно, нажатием комбинации клавиш Ctrl+D.

Команда at допускает и более сложные спецификации времени, чем ЧЧ:ММ; вы можете указать дату или такое время, как midnight, noon или teatime. Подробности вы найдете на man-странице команды at.

Команда atq служит для просмотра очереди заданий. Для непривилегированного пользователя она выводит задания, поставленные в очередь им, а для суперпользователя — все задания. Удалить задание из очереди вы можете командой atrm.

Команда batch используется для тех заданий, которые заведомо потребуют много процессорного времени. Задание, поставленное в очередь при помощи этой команды, начинает выполняться только тогда, когда нагрузка на систему (среднее число процессов, ожидающих выделения им кванта времени) снизится до заранее установленного значения (по умолчанию 0.8; подробности —

man atd
).

Очередь заданий находится в каталоге

/var/spool/at
. Файлы
/еtс/at.allow
и
/etc/at.deny
содержат списки тех пользователей, которым разрешено и запрещено пользоваться системой at.

9.4.2. Диспетчер расписаний — демон cron

Этот демон запускается во время инициализации системы (сценарий

/etc/init.d/crond
), читает свои конфигурационные файлы и переходит в режим ожидания. Раз в минуту демон просыпается, проверяет дату последнего изменения конфигурационных файлов, перечитывает те из них, которые оказались изменены, и выполняет задания, назначенные на данную минуту.

В конфигурационных файлах, называемых еще crontab-файлами, хранятся расписания: в каталоге

/var/spool/cron
— по одному на зарегистрированного пользователя и
/etc/crontab
— суперпользовательский. Выполнив задание, демон cron отправляет почтовое сообщение о результатах выполнения владельцу crontab-файла или пользователю, указанному в переменной MAILTO этого файла.

Управление файлами расписаний

Пользовательские crontab-файлы не предназначены для ручного редактирования, Для управления ими служит команда crontab. Список тех, кому разрешено ее запускать, находится в файле

/etc/cron.allow
. Если этот файл отсутствует, то запускать crontab могут все, кроме тех, кто перечислен в файле
/etc/cron.deny
. Если отсутствуют оба файла, то запускать команду может только суперпользователь.

Формат команды:

crontab [-u <логин_имя> ] [ <файл> | [-l] | [-r] | [-е] | [-i]]

Если указан файл, то этим файлом замещается crontab-файл указанного пользователя; если нет, то crontab-файл редактируется на месте. Ключи означают следующее:

♦ – l — вывести на консоль содержимое файла расписания;

♦ – r — удалить файл расписания;

♦ – i — удалить, предварительно переспросив;

♦ – e — редактировать файл расписания, то есть открыть его в редакторе, указанном в переменной окружения $EDITOR (по умолчанию — vi).

Если не указаны ни файл, ни ключи, то crontab будет читать файл расписания со своего стандартного ввода. Закончив ввод строк, нажмите Ctrl+D.

Формат файла расписания

Каждая незакомментированная строка файла расписания имеет следующий формат:

минута час день месяц день_недели [логин_имя] команда

Поля спецификации времени могут содержать:

♦ символ *, соответствующий любому значению;

♦ число: 0–59 для минуты, 0–23 для часа, 1–31 для дня, 1–12 для месяца, 0–7 для дня недели (воскресенье — это и 0, и 7);

♦ диапазон чисел, разделенных дефисом: например, 1-5 в поле день_недели означает «с понедельника по пятницу»;

♦ числа или диапазоны, разделенные запятыми, действующими как ИЛИ.

Поля «день месяца» и «день недели» тоже объединяются как ИЛИ: задание будет выполнено в день, удовлетворяющий хотя бы одной из этих спецификаций.

  • Читать дальше
  • 1
  • ...
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: