Наши партнеры








Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

6. Планирование автоматических заданий

6.1. Автоматическое выполнение программ .

6.2. Настройка процесса начальной загрузки.

6.3. Планирование автоматических заданий.

6.1. Автоматическое выполнение программ

Система UNIX V Release 4.0 Version 1.0 позволяет поддерживать автоматическое функционирование программ в указанное время. Это можно сделать с помощью программы cron. Программа cron и команда crontab позволяют вам прогонять программы в нерабочие часы. Это удобно при работе с затратными по времени программами или с управляющими процедурами, или процедурами подчистки, которые требуют наличия машины, находящейся в спокойном состоянии.

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

Команда crontab используется следующим образом:

	crontab file
	crontab -r
	crontab -l

Команда crontab копирует указанный file (или стандартный ввод, если файл не указан) в каталог, который содержит все crontab пользователя. Параметр -r удаляет crontab пользователя из каталога crontab. Параметр -l выполнит просмотр файла crontab, чтобы вызвать пользователя.

Каждая строка файла crontab определяет одну процедуру. Формат строкового элемента выглядит следующим образом:

	minute hour day month day-of-week command

Каждое поле определяется следующим образом

	minute (0-59),
	hour (0-23),
	day (1-31),
	month (1-12),
	day-of-week (0-6, 0=Sunday)
	command (команда, которая должна выполняться в указанное  время).

Нижеприводимые правила относятся к первым пяти полям.

Два числа, отделенные друг от друга дефисом, указывают диапазон чисел.

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

Звездочка указывает все разрешенные значения.

Например,

	0 0 1,14 * 2

указывает, что команда будет функционировать первого и четырнадцатого числа каждого месяца, а также каждый вторник. Если в командном поле (шестое поле) размещен знак %, система UNIX переведет его как символ новой строки. Только первая строка командного поля (символьная строка до знака %) выполняется командным файлом. Все другие строки бывают доступными для команды в виде стандартного ввода.

Например, пусть файл, вызванный anyfile, содержит следующий элемент cron:

	0 0 1 * * mailx $LOGNAME % Subject: Call Mom! % now

Когда выполняется командная строка crontab anyfile, пользователь, чье имя регистрации $LOGNAME, будет получать напоминание с Call Mom! первого числа каждого месяца.

6.1.1. Автоматическая подчистка системы

Время от времени систему UNIX необходимо подчищать. Вы можете избежать этого занятия благодаря команде crontab и файлу crontab. Вы можете указать задание подчистки (например, удаление устаравших файлов) и время, когда вы хотите выполнить файл crontab.

Ваш компьютер уже имеет несколько определенных процедур подчистки. Эти процедуры выполняются с помощью имени регистрации root под управлением crontab каждое воскресное утро в 5:17. Файл /etc/cleanup определяет какие именно процедуры подчистки выполняются.

Некоторые из файлов, которые подчищаются каждое воскресенье утром, перечислены ниже:

Файл /var/adm/wtmp: этот файл содержит архив имен регистрации в системе. Каждый раз когда пользователь регистрируется в системе, в этом файле делается запись. Чтобы не удалять этот файл вручную, когда он станет слишком большим, можно использовать cron.

Файл /var/adm/sulog: этот файл содержит архив пользователей, которые используют команду su для подключения имен регистрации. В качестве меры защиты этот файл не должен считываться другими пользователями.

Файл /var/cron/log: этот файл содержит архив всех действий, предпринятых cron.

Зарегистрировавшись как root и выполнив crontab -l, вы сможете увидеть элемент crontab, который выполняет /etc/cleanup, а также другие рутины подчистки для базовой сети (UUCP). Вы можете редактировать /etc/cleanup и модифицировать root crontab, тем самым по своему желанию выполнив подчистку заданий другим способом.

6.2. Настройка процесса начальной загрузки

Программа системы UNIX boot загружает и выполняет автономные программы системы UNIX. Так как boot используется для первоначальной загрузки и выполнения ядра системы UNIX, она может загружать и выполнять любые другие программы, которые связаны с автономным выполнением. Система вызывает программу boot при каждом запуске компьютера. Она сначала пытается поместить программу boot в устройство для гибкого диска; если устройство для гибкого диска пусто, система вызывает процедуру загрузки жесткого диска.

При первом вызове, boot выведет на экран следующее сообщение о состоянии:

	Bootung the UNIX System...

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

6.2.1. Загрузка программы по умолчанию

Чтобы дать boot команду на использование программы по умолчанию (ядро системы) и значений, указанных в файле загрузки по умолчанию - etc/default/boot, нажмите ENTER. Если вы только что загрузили программу boot с дистрибутивного диска, нажмите ENTER, boot сделает паузу и даст подсказку на использование информации о настройке.

6.2.2. Загрузка другой автономной программы

Чтобы загрузить программу, отличную от программы по умолчанию, нажмите любую клавишу (за исключением ENTER) по подсказке "Загрузка системы UNIX", чтобы прервать boot. Программа boot делает паузу и дает подсказку с помощью следующего сообщения для ввода имени программы, которую вы хотите загрузить:

	Enter the name of a kernel:

Система ждет, когда вы наберете имя нужной программы и нажмете ENTER.

Чтобы загрузить на дистрибутивный диск программу, отличную от boot, вы должны указать местонахождение программы, предоставив имя файла (если нужная вам программа находится в устройстве загрузки по умолчанию), или предоставить имя устройства и имя файла (если программы, которую вы хотите загрузить нет в устройстве по умолчанию). Имя файла нужно включить в полное имя файла, содержащего автономную программу. Указание местонахождения программы, которую вы хотите загрузить, должно стоять первым в командной строке и должно присутствовать, если другие параметры boot указываются или на командной строке или в /etc/default/boot. Чтобы указать программу, отличную от boot, на дистрибутивном диске, используйте один из нижеследующих форматов:

	filename

или

	xx(m,o)filename

где filename - это полное имя файла системы UNIX;
xx - это имя устройства (hd - для жесткого диска или fd - для гибких дисков);
m - это вторичный номер устройства (1 для системы файлов root на жестком диске);
o - это смещение в сегменте (обычно 0).

Аргумент filename должен начинаться с косой черты, если программа не находится в каталоге root. Если filename является единственным аргументом, набранным по подсказке загрузки, boot ищет filename в устройстве загрузки по умолчанию и пытается оттуда его загрузить. Обратите внимание, что все числа являются десятичными.

6.2.3. Диапазон памяти

Строка MEMRANGE в файле /etc/default/boot представляет диапазон памяти, который будет использован операционной системой UNIX в вашем компьютере. Вы можете иметь больший объем физической памяти в вашей системе, нежели указано в MEMRANGE, но операционная система будет использовать только указанный объем. Если объем физической памяти меньше указанного MEMRANGE, операционная система будет использовать только существующий объем физической памяти.

Первый диапазон чисел, указанный в MEMRANGE, является базовой памятью (0-640K). Когда система загружается, код загрузки определяет истинный конец базовой памяти, и она будет использовать меньшее из двух значений.

6.2.4. Автоматическая загрузка

Вы можете создавать конфигурацию своей системы таким образом, что и загрузка при включении питания, и перезагрузка после возникновения аварийных процессов, выполняется автоматически. Самозагрузка при включении питания (фактически любой сброс) управляется настраиваемым параметром AUTOBOOT в /etc/default/boot. Аварийная самоперезагрузка управляется настраиваемым параметром PANICBOOT, также из /etc/default/boot, и может выполняться без вмешательства оператора.

6.2.4.1. Самозагрузка при включении питания

Чтобы установить автоматическое функционирование boot, используя информацию о создании конфигурации по умолчанию в файле /etc/default/boot, установите AUTOBOOT на YES в файле /etc/default/boot в системе файлов root по умолчанию. Это заставит boot вывести на экран сообщение о загрузке по умолчанию и загрузить программу. В случае возникновения ошибки или нажатия какой-то клавиши во время процесса самозагрузки, boot возвращается к подсказке загрузки и пытается загрузить программу еще раз. Программа boot на диске инсталяции системы UNIX выполняет эту процедуру самозагрузки.

Если AUTOBOOT устанавливается на NO в файле /etc/default/boot, boot выводит на экран сообщение "Загрузка ядра системы UNIX" и дает вам возможность указать свои данные настройки загрузки, прежде чем она начнет загрузку программы. Если вы не набираете каких-либо данных после подсказки, boot предполагает, что вам нужна конфигурация по умолчанию. В этом случае boot ведет себя так, будто AUTOBOOT установлен в файле /etc/default/boot на YES. Программа boot считывает конфигурацию в файл /etc/default/boot, затем выводит на экран сообщение о загрузке по умолчанию (указанное с помощью параметра BOOTMSG) и начинает загрузку программы.

6.2.4.2. Аварийная самоперерезагрузка

Когда операционная система приходит в состояние, в котором она уже не может функционировать дальше, может возникнуть состояние, которое известно как авария системы. Во время авариии системы ядро системы сохраняет максимально возможное количество информации о ее состоянии, чтобы сделать последующий анализ дампа памяти. Вы можете создать конфигурацию своей системы так, что она сможет выполнять перезагрузку автоматически после аварии, если добавите строку PANICBOOT=YES в файл /etc/default/boot. По умолчанию аварийная самоперезагрузка отсутствует. Когда операционная система оказывается в аварийной ситуации, дамп памяти пишется или в сектор, предназначенный для дампа, в зависимости от выбранного вами метода конфигурации в вашей системе. Анализ этого дампа памяти может помочь при определении причины аварийной ситуации

Методом по умолчанию для системы, основанной не на коде SCSI, является метод использования сектора свопинга, а методом по умолчанию для системы, основанной на коде SCSI, является метод использования сектора, предназначенного для дампа.

Если вы выбираете автоматическую перезагрузку системы после аварии, вам необходимо решить как работать с дампом памяти. Если вы хотите выполнять автоматическую перезагрузку после аварии без вмешательства оператора и не хотите сохранять дамп памяти, используйте метод сектора свопинга. Если вы хотите выполнить автоматическую презагрузку после аварии, а также сохранить дамп памяти, выбирайте метод сектора, предназначенного для дампа памяти. Если ваша система невелика в смысле запоминающих устройств на дисках и памяти, вы можете предпочесть использование метода сектора свопинга (имея в виду, что сектор свопинга требуется на всех системах, а сектор дампа является произвольным), или вы можете захотеть вовсе не сохранять дамп памяти. Если ваша система достаточно большая, вы, возможно, захотите использовать метод сектора, предназначенного для дампа. Используйте диаграмму, приведенную на рис. 6, которая поможет вам принять решение.

	          /  \
	        / Вам  \           __________________________
	      /нужна ав- \   Нет   | Никаких дальнейших уста-|
	    /томатическая  \ ____  | новок не требуется      |
	    \ перезагрузка /       |                         |
	      \после ава-/         |_________________________|
	        \ рии? /
	          \  /
	            |
	            | Да           ___________________________
	          /  \             |Используйте метод сектора |
	        / Вам  \           |свопинга и установите TIME|
	      /нужна авт.\   Нет   |на отрицательное значение.|
	    /перезагрузка  \ ____  |Вы решаете сохранять или  |
	    \ без вмешат.  /       |нет дамп памяти в ходе    |
	      \кого-либо?/         |перезагрузки системы.     |
	        \      /           |                          |
	          \  /             |__________________________|
	           |
	           | Да
	          /  \
	        /  Вы  \
	      /  хотите  \   Да    ___________________________
	    /   сохранить  \ ____  |Используйте метод резер- |
	    \     дамп     /       |вирования сектора дампа  |
	       \  памяти? /         |                         |
	        \      /           |_________________________|
	          \  /
	           |
	           | Нет
	   __________________________
	   |Используйте метод резер- |
	   |вирования сектора сво-   |
	   |пинга                    |
	   |_________________________|

Рис. 6

Система определяет, находится ли дамп памяти в секторе свопинга во время загрузки. Во время перезагрузки система дает возможность сохранить дамп памяти, если такой существует, задав вопрос: "Хотите ли вы сохранить дамп?". Если вы отвечаете утвердительно, дамп памяти в секторе свопинга сохраняется. Сохранение сектора свопинга включает интерактивный процесс, в котором вы получаете подсказку на использование носителей данных (гибкие диски или кассета магнитной ленты) и на объем памяти, помещаемый в дамп. Если вы отвечаете отрицательно, перезагрузка продолжается и дамп памяти не сохраняется. Если дамп памяти в секторе свопинга не сохраняется, он будет потерян, когда система приступит к разбивке памяти на страницы.

Этот метод требует вмешательства администратора; в то же время, если вы не хотите сохранять дамп памяти, вы можете создать конфигурацию системы, которая будет презагружаться автоматически, если дадите пременной TIME (указываемую в секундах) в файле /etc/default/dump положительное значение. В этом случае система спросит: "Хотите ли вы сохранить дамп? ", а затем будет ждать число секунд, указываемое в TIME (значение по умолчанию - 60 секунд). Если за это время никакого ответа не последует, система не сохраняет дамп памяти и презагрузка продолжается автоматически.

Если значение TIME - отрицательное, система будет ждать неопределенное количество времени ответа на вопрос "Хотите ли вы сохранить дамп? ". Если значение TIME нулевое, вопрос не задается, и система продолжает перезагрузку, не ожидая ответа.

По умолчанию система записывает дамп памяти в сектор свопинга. Если вы хотите, чтобы аварийная самоперезагрузка выполнялась полностью автоматически (без какого-либо вмешательства), и вы хотите сохранить дамп памяти, используйте метод с резервированием сектора дампа.

Метод резервирования сектора дампа.

Если вы выполняете новую инсталяцию или инсталяцию, разрушающего типа (т.е. при которой создаются новые системы файлов на диске), вы можете создать конфигурацию зарезервированного сектора дампа, в котором можно сохранять дамп памяти. Если в таких условиях возникает аварийная ситуация, дамп памяти записывается в тот сектор, который указан в системном файле /etc/cjnf/cf.d/sassign и система продолжает аварийную самоперезагрузку.

Резервируемый сектор дампа устанавливается автоматически как часть процедуры установки операционной системы.

6.2.4.3. Меры защиты

Система предлагает два типа защиты с использованием пароля: сетевой пароль (через контроллер клавиатуры) и пароль технических средств (через ROM/BIOS). Сетевой пароль не требуется загрузке системы после сброса; клавиатуру нельзя использовать, пока не будет введен сетевой пароль. Если вы хотите провести загрузку системы автоматически, без вмешательства оператора, вы не можете использовать пароль технических средств, и вам следует быть очень осторожными с использованием сетевого пароля.

6.3. Планирование автоматических заданий

Средство планирования автоматических заданий (Shedule Automatic Tasks) дает возможность планировать задания, выполняющиеся автоматически в более позднее время или в регулярно установленное время. Вы можете добавлять, изменять, удалять или выводить на экран свои собственные запланированные задания.

Примечание. Если вы выбираете средство планирования автоматических заданий и не имеете доступ к cron, вы получите предупреждение. Пользователь, зарегистрировавшийся как "root", редактирует файл /etc/cron.d/cron.allow и добавляет ваше имя регистрации, прежде чем вы сможете обратиться к средству cron.

Кроме того, если вы выбираете средство планирования автоматических заданий, а демон (следящий процесс) не функционирует, вы получите предупреждение. Вы можете запланировать свое задание, но оно не будет выполняться пока не будет запущен планировщик заданий.

Обращайтесь к меню этих заданий с помощью параметра schedule_task из главного меню System Administration.

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

Примером задания может служить

	mail dlt < mailfile

которое отсылает почту в dlt пользователя.

Выполняйте следующие меню, чтобы добавить автоматически планируемое задание:

  1. Выберите Add из меню Schedule Automatic Task.

    Система выводит на экран следующую информацию:

    	______________________________________________
    	|  3                    Schedule a Task        |
    	----------------------------------------------
    	Month(s) of thr Year:
    	Day(s) of the Month:
    	Day(s) of the Week:
    	Hour(s) of the Day:
    	Minute(s) past the Hour:
    	Task:
    
  2. Нажмите CHOICES. Система выводит на экран числовой список месяцев.
  3. Используйте клавиши со стрелками, чтобы переместить курсор, и нажмите MARK, отметив каждый из планируемых месяцев. Звездочка (*) будет отображаться рядом с каждым выбранным месяцем.
  4. Нажмите Enter.
  5. Используйте клавиши со стрелками, чтобы переместиться к следующему полю.
  6. Повторите вышеуказанные этапы 2-5 в следующих четырех полях.
  7. Для поля Task: введите команду для планируемого задания, а затем нажмите SAVE.

    Система выводит экран, подтверждающий информацию о задании.

  8. Нажмите CONT, чтобы подтвердить запланированное задание или
  9. нажмите CANCEL, чтобы выйти из задания.

6.3.2. Изменение автоматически планируемого задания

Вы не можете изменить задание в то время, когда оно уже выполняется. Чтобы изменить задание, выберите Delete в меню Schedule Automatic Task Menu, удалите задание, а затем выберите Add, чтобы добавить пересмотренное задание. Выполняйте следующие функции, чтобы изменить автоматически планируемое задание:

  1. Выберите CHANGE из меню. Система выводит экран со списком запланированных заданий :
    	______________________________________________
    	|  3            Change a Scheduled Tasks       |
    	----------------------------------------------
    	>Task 1: /bin/su/ root -c "/sbin/cleanup > /dev/null"
    	Task 2: /etc/cron.d/logchecker
    
  2. Используйте клавиши со стрелками, чтобы переместить курсор к заданию, которое вы хотите изменить и нажмите Enter.
  3. Заполните форму и нажмите SAVE.
  4. Нажмите CONT, чтобы изменить еще одно задание, или нажмите CANCEL и вернитесь в меню 2.

Примечание. Если вы выбрали CHANGE, а запланированных в текущий момент заданий нет, вы получите предупреждение.

6.3.3. Удаление автоматически планируемого задания

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

Примечание. Если вы выберете Delete, а запланированных в текущий момент заданий нет, вы получите предупреждение.

Выполняйте следующие меню, чтобы удалить автоматически планируемое задание:

  1. Выберите DELETE из меню. Система выводит экран со списком запланированных заданий :
    	______________________________________________
    	|  3            Delete a Scheduled Tasks       |
    	----------------------------------------------
    	>Task 1: /bin/su/ root -c "/sbin/cleanup > /dev/null"
    	Task 2: /etc/cron.d/logchecker
    
  2. Используйте клавиши со стрелками, чтобы переместить курсор к заданию, которое вы хотите удалить и нажмите MARK, чтобы их пометить. Звездочка будет отображаться рядом с каждым из выбранных заданий.
  3. После того как вы выберете все задания, нажмите Enter. Система выводит экран, подтвержджающий задания, которые должны быть удалены.
  4. Нажмите CONT, чтобы подтвердить удаление, или нажмите CANCEL, чтобы отказаться от задания.

6.3.4. Вывод на экран автоматически планируемых заданий

Выполняйте следующие меню, чтобы вывести на экран автоматически планируемые задания:

  1. Выберите display из меню Schedule Automatic Task. Система отобразит список запланированных заданий на экране:
    	______________________________________________
    	|  3            Display a Scheduled Tasks      |
    	----------------------------------------------
    	>Task 1: /bin/su/ root -c "/sbin/cleanup > /dev/null"
    	Task 2: /etc/cron.d/logchecker
    
  2. Нажмите CANCEL и возвратитесь в меню.

Назад | Содержание | Вперед