Планирование автоматических заданий
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 в устройстве загрузки по умолчанию и пытается оттуда его загрузить. Обратите внимание, что все числа являются десятичными.