Купить
 
 
Жанр: Учеба

SCO: Пособие администратора системы Unix

страница №41

ET символ-набор
Имя формы FORM форма-имя
Число копий COPIES целое
Режимы MODES режим

Источником значений для этих шаблонов являются:
- значения шаблонов INPUT и OUTPUT определяются типом фай-
ла, который должен преобразовываться фильтром и выходным
типом, который должен формироваться соответственно. Каждое
из них будет иметь тип, зарегистрированный с фильтром.
- значением шаблона TERM является тип принтера.
- значения для шаблонов CPI, LPI, LEHGTH и WIDTH определя-
ются запросом пользователя, используемой формой или значе-
ниями по умолчанию для принтера.
- значением для шаблона PAGES является список страниц, ко-
торые должны печататься. Обычно - это список диапазонов
страниц, либо пара чисел, либо отдельное число, каждый ди-
апазон разделяется запятой (например 1-5, 6, 7 и 8). Одна-
ко значение, заданное в возможности -Р для печати запроса
передается неизменным.
- значение шаблона CHARSET - это имя используемого набора
символов.
- значение для шаблона FORM - это имя печатаемой формы,
если оно есть.
- значение шаблона COPIES - это число копий файла, которое
должно быть сделано. Если фильтр использует этот шаблон,

-15-59-

обслуживание печати уменьшает число копий фильтруемого
файла, которое он печатает до 1, так как эта "отдельная
копия" в действительности является множеством копий, про-
изводимых фильтром.
- значение шаблона MODES определяется возможностью -y ко-
манды lp, команды, которую пользователь использует для пе-
редачи запроса печати. Так как пользователь может задать
несколько возможностей -y, то для шаблона MODES может быть
несколько возможностей. Значения используются в порядке
слева направо, заданном пользователем.
Замена показывает, как значение шаблона задается для программы-фильтра.
Это обычно литеральная возможность иногда со
структурным нулем (*), включенным, чтобы показать, где присваивается
значение. Несколько примеров показывают, как это работает.


Пример 1
Программа фильтр называется /usr/bin/npf. Программа имеет
два входных типа nroff37 и X, производит выходной тип, называемый
ТХ и работает с любым принтером типа ТХ. Программа принимает
три возможности: -Xb Только для входного типа Х -l целое Для
длины выходной страницы. -w целое Для ширины выходной страницы.

Определение фильтра выглядит так:

Input types: nroff37 и X
Output types: ТХ
printer types: ТХ
Command: /usr/bin/npf
Options: INPUT X = -Xb, LENGTH * = -l*,
WIDTH * = -w*

1 - входные типы;
2 - выходные типы;
3 - типы принтера;
4 - команда;
5 - возможности.

Пользователь посылает файл типа nroff37 и запрашивает,
чтобы он печатался принтером с именем lp1 типа ТХ и запрашивает
длину страницы 72:

-15-59а-

lp -T nroff37 -d lp1 -o length=72

Этот фильтр вызывается обслуживанием печати для преобразования
файла. Фильтр вызывается как:

/usr/bin/npf -l72

-15-60Пример

2


Другой пользователь посылает файл типа Х, который должен
печататься на том же принтере со значениями длины и ширины,
принимаемыми по умолчанию. Фильтр вызывается как:

/usr/bin/npf -Xb

Пример 3

Программа фильтр называется /usr/bin/Х9700. Она имеет один
входной тип, troff, производит выходной тип, называемый 9700 и
будет работать с любым принтером типа 9700. Программа имеет одну
фиксированную возможность -ib и принимает другие возможности:


-l integer Для длины выходной страницы
-s name Для набора символов
-o portrait или
-o landscape для "портретной" или "рельефной" ориентации
бумаги.

Вы решили, что вашим пользователям нужно дать только сокращения
port и land ,когда они запрашивают ориентацию бумаги.
Так как эти возможности не свойственны обслуживанию печати,
пользователи задают их используя возможность -y команды lp.
Определение фильтра выглядит следующим образом:

Input types: troff
Output types: 9700
Рrinter types: 9700
Command: /usr/bin/x9700 -ib
Options: LENGTH * = -l *, CHARSET * = -s *,
MODES port = -o portrait, MODES land
= -o landscape

1 - входные типы;
2 - выходные типы;
3 - типы принтера;
4 - команда;
5 - возможности.

-15-60а(Последняя
строка разбивается на три строки для облегчения чтения
этого документа. Она должна вводиться, как отдельная строка).

Пользователь посылает файл типа troff на печать для принтера
типа 9700 и запрашивает рельефную ориентацию, используя
готический набор символов:

lp -T troff -S gothic -y land

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

-15-61-

/usr/bin/x9700 -ib -S gothic -o landscape

Примечание
Если образец или замещение должны включать запятую или знак
равенства (=), отметьте их специальным значением, поставив
перед ними обратную косую черту. Обратная косая черта перед
этими двумя символами удаляется, когда используются образец
или замещение. (Все другие обратные косые черты остаются).

Добавление фильтра

После завершения определения фильтра используйте одну из
следующих команд для добавления его в систему:

Ъ2 /usr/lib/lpfilter -f Ъ1filtername Ъ2-F filename
Ъ2 /usr/lib/lpfilter -f Ъ1filtername -

sysadmsh пользователи выбирают:
Printers--"Auxiliary--"Filter--"Change
(Принтеры--"Вспомогательное--"Фильтр--"Изменение)

Первая команда получает определение фильтра из файла, а
вторая команда получает определение фильтра от вас через стандартный
вход. filtername может быть любым по выбору длиной до
14 букв, цифр и символов подчеркивания.
Если вам нужно изменить фильтр, введите одну из этих же
команд. Вам необходимо лишь дать измененную информацию. Остальная
информация остается неизменной.

Удаление фильтра

Обслуживание печати не имеет фиксированного предела на
число фильтров, которое вы можете определить. Однако имеет
смысл удалить ненужные более фильтры для устранения дополнительной
обработки обслуживанием печати, которое должно проверить
все фильтры для нахождения одного, который работает в данной
ситуации.
Используйте следующую команду для удаления фильтра:
Ъ2 /usr/lib/lpfilter -f Ъ1filtername -Х
sysadmsh пользователи выбирают:
Printers--"Auxiliary--"Filter--"Remove
(Принтеры--"Вспомогательное--"Фильтр--"Удаление)

-15-62-

Проверка фильтра

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

Ъ2 /usr/lib/lpfilter -f Ъ1filtername -l
Ъ2 /usr/lib/lpfilter -f Ъ1filtername Ъ2-l"filename

sysadmsh пользователи выбирают:
Printers--"Auxiliary--"Filter--"List
(Принтеры--"Вспомогательное--"Фильтр--"Список)

Первая команда предоставляет определение фильтра на вашем
экране. Вторая команда фиксирует это определение в файле, который
позднее может использоваться для переопределения фильтра,
если вы случайно удалили фильтр из обслуживания печати.

Предупреждение

Добавление, изменение или удаление фильтров может привести
к отмене стоящих в очереди запросов печати. Это происходит потому,
что обслуживание печати оценивает каждый запрос печати,
еще стоящий в очереди, чтобы увидеть, какие из них подвержены
изменению фильтра. Запросы, которые более не печатаются из-за
того, что фильтр удален или изменен, отменяются (с посылкой извещений
пользователям, которые их послали). Может также возникать
задержка в ответ на новые или измененные запросы печати,
когда фильтры изменяются из-за многих характеристик, которые
должны быть оценены для каждого запроса печати, еще стоящего в
очереди. Эта задержка может стать ощутимой, если имеется большое
число запросов, нуждающихся в фильтрации.
Из-за этого возможного влияния вы можете захотеть сделать
изменения в фильтре во время периодов, когда обслуживание печати
не используется интенсивно.

-15-62а-

Чистка журнала запросов

Оглавления /usr/spool/lp/temp и /usr/spool/lp/requests содержат
файлы, которые описывают каждый запрос, который был послан
обслуживанию печати LP. Каждый запрос имеет два файла по
одному в каждом оглавлении, которые содержат информацию о запросе.

Информация разбита для помещения более чувствительной информации
в оглавление /usr/spool/lp/requests, где она может

-15-63оставаться
секретной. Файл запроса защищен от всех, кроме пользователя
который послан запрос, в то время как файл /usr/spool/
lp/requests защищен даже от посылающего пользователя.
Эти файлы остаются в оглавлениях только пока запрос находится
в очереди. После завершения запроса информация в файлах
объединяется и добавляется в файл /usr/spool/lp/logs/requests.
Этот файл не удаляется обслуживанием печати LP, но может периодически
чиститься, используя, например, средство cron. Смотрите
описание команды crontab в главе "Использование команд планирования
заданиями: at, cron, batch" в документе.
Элемент crontab, принимаемый по умолчанию и предлагаемый
системе обслуживания печати LP, показан ниже:

13 3 * * * cd /usr/spool/lp/logs; if [ -f
requests ]; then /bin/mv requests xyzzy; /bin/cp
xyzzy requests; "xyzzy; /usr/lbin/agefile -c2
requests; /bin/mv xyzzy requests; fi

(Это одна строка в crontab, но она разбита здесь на несколько
строк для облегчения чтения). Если кратко, то этот элемент
делает следующее: создает поколение файла, изменяет имя
requests1 и пересылает копию прежнего дня в requests2. Число 2
в возможности -с. Программа agefile запрашивает хранение в файлах
журнала информации двух предыдущих дней, отбрасывая более
старую информацию в файлах журнала. Изменяя это число, вы можете
изменить сохраняемую информацию. С другой стороны, если вы
хотите сохранять информацию чаще или хотите сбрасывать файл чаще,
чем раз в день, измените время, когда элемент crontab выполняется
изменением первых двух чисел. Текущие значения 13 и 3
приводят к тому, что сброс происходит каждый день в 3:13.
Представляемый по умолчанию элемент crontab достаточен для
хранения старых записей запросов печати для накопления в файловой
системе накопления. Вы можете захотеть сконцентрировать информацию
в журнале запроса для получения доклада об использовании
обслуживания печати LP или добавления в генерируемую
учетную информацию. Вы можете получить различные процедуры,
проверяющие файл и извлекающие информацию перед процедурой
сброса.
Журнал запросов имеет простую структуру, облегчающую извлечение
данных с помощью общих команд оболочки UNIX. Запросы
перечисляются в порядке, в котором они печатались и разделяются

-15-63астроками,
которые присваивают запросу идентификатор. Каждая
строка ниже линии разделения отмечается отдельной буквой, которая
идентифицирует вид информации, содержащейся в строке. Каждая
буква отделяется от данных одним пробелом. Смотрите следующую
таблицу для получения дополнительной информации.

-15-64-

Таблица 15.7

Элементы журнала запросов

Символ Содержимое строки
---------------------------------------------------------------------------

= Это строка разделитель, содержащая идентификатор зап-
роса, идентификатор пользователя и группы пользовате-
лей, полное число байтов в первоначальных (нефильтро-
ванных) файлах и время постановки запроса в очередь.
Эти элементы разделяются запятыми и располагаются в
порядке именования. Идентификатор пользователя, иден-
тификатор группы и размеры имеют перед собой слова
uid, gid или size соответственно.
С Число печатаемых копий
D Назначение принтера или класса или слово any
F Имя печатаемого файла. Строка повторяется для каждого
печатаемого файла, и файлы печатаются в приведенном
порядке.

f Имя используемой формы
H Тип используемой специальной обработки, расшифрован-
ный (resume, hold,immediate). Единственное полезное
значение, имеющееся в этой строке - это immediate.
N Тип предупреждения, используемый при успешном завер-
шении запроса печати. Тип - это буква М, если пользо-
ватель был извещен почтой или W, если пользователь
был извещен сообщением на терминал
О Возможности -о
Р Приоритет запроса печати
p Список печатаемых страниц
r Эта однобуквенная строка представлена, если пользова-
тель запросил первичную обработку файлов (возможности
-r команды lp)
S Используемый набор символов или механизм печати
s Выход запроса, как комбинация отдельных битов, выра-
женная в шестнадцатеричной форме. В то время, как
несколько битов используются внутренне спулером, наи-
более важные биты перечислены ниже: 0х0004 Медленная
фильтрация завершилась успешно 0х0010 Печать заверши-
лась успешно 0х0040 Запрос отменен 0х0100 Запрос не
смог выполнить фильтрацию или печать

-15-65T
Титул, помещенный на странице заголовка
t Тип содержимого, обнаруженный в файле (файлах)
U Имя пользователя, который послал запрос печати
x Медленный фильтр, используемый для запроса
Y Список специальных режимов для фильтров, используемый
для печати запроса
y Быстрый фильтр, используемый для запроса
z Принтер, используемый для запроса. Имеется различие
для назначения (строка D), если запрос поставлен в
очередь для любого принтера или класса принтеров или
если запрос был переслан по другому назначению адми-
нистратором обслуживания печати

-15-66-

НАСТРОЙКА ОБСЛУЖИВАНИЯ ПЕЧАТИ

Хотя обслуживание печати пытается быть достаточно гибким
для обработки большей части потребностей принтеров и печати,
оно не может быть полным. Вы можете купить принтер, который не
вполне соответствует способу, каким обслуживание печати обрабатывает
принтеры, или же может иметь потребности печати, которые
не соответствуют обслуживанию печати.
Вы можете настроить обслуживание печати несколькими способами.
В данном разделе рассказывается, как вы можете:
- Настроить характеристики порта принтера,
- Настроить базу данных terminfo,
- Написать интерфейсную программу, и
- Написать фильтр.

Диаграмма на рисунке 15-1 дает обзор обработки запроса печати:


Рис. 15-1 Как процессы LP печатают запрос лазерного файла lp -d
1 - команда lp;
2 - конфигурация обслуживания печати;
3 - обслуживание печати (демон накопления);
4 - выборочный медленный фильтр;
5 - экранирование задания;
6 - инициализация принтера;
7 - база данных terminfo;
8 - стандартная интерфейсная программа;
9 - фильтр по умолчанию;
10 - выборочный быстрый фильтр;
11 - лазерный принтер;
12 - ключ;

-15-66а13
- коммуникационный путь;
14 - управление процессами UNIX;
15 - управление процессами UNIX (альтернативное);
16 - доступ к данным;
17 - процесс UNIX;
18 - дисковые файлы.


-15-67-

Каждый запрос печати посылается демону накопления, который
отслеживает все запросы. Демон создается, когда вы запускаете
обслуживание печати LP. Системный процесс UNIX отвечает также
за отслеживание состояния принтеров и медленных фильтров; когда
принтер завершает печать пользовательского файла, демон начинает
печать другого запроса, если он стоит в очереди.
Вы можете настроить обслуживание печати настройкой или заменой
некоторых элементов, показанных на рисунке 15-1 (номера
расшифровываются на диаграмме).
1. Для большинства принтеров вам необходимо лишь изменить
конфигурацию принтера, запомненную на диске. В предыдущих
разделах данной главы объясняется, как это сделать. Неко-
торые из более зависящих от принтера данных конфигурации -
это характеристики порта принтера: скорость передачи, чет-
ность и так далее.
2. Для принтеров, которые не представлены в базе данных
terminfo, вы можете добавить новый элемент, описывающий
возможности принтера. Эта база данных используется в двух
паралельных направлениях: экранирование запросов печати с
целью убедиться, что принятые запросы могут обрабатываться
нужным принтером и установка принтера так, что он готов
печатать запрос.
Например, если база данных terminfo не выдает принтер, ко-
торый может задавать длину страницы, запрошенную принте-
ром, то демон накопления отвергает запрос. С другой сторо-
ны, если она показывает, что может выдать такой принтер,
то та же самая информация используется интерфейсной прог-
раммой для инициализации принтера.
3. Для особенно сложных принтеров или, если вы хотите доба-
вить возможности, не обеспеченные стандартным обслуживани-
ем печати LP, вы можете изменить стандартную интерфейсную
программу. Эта программа отвечает за управление принтером:
она печатает страницу заголовка, инициализирует принтер и
вызывает фильтр для посылки копий файлов пользователя на
принтер.
4аb. Для обеспечения связи между приложениями, используемой
системой и принтерами, вы можете добавить медленные и
быстрые фильтры. Каждый тип фильтра может преобразовать
файл в другую форму, отображая один набор последователь-
ностей выхода в другой, например, и может обеспечить спе-
циальную установку, интерпретируя режимы печати, запрошен-
ные пользователем. Медленные фильтры

-15-67а-

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

-15-68-

Настройка характеристик порта принтера

Вы должны быть уверены, что характеристики порта принтера,
установленные обслуживанием принтера, соответствуют установкам
коммуникации принтера. Стандартные установки порта принтера
предназначены для работы с типичными файлами UNIX и многими
принтерами, но они не работают со всеми файлами и принтерами. В
действительности это не шаг настройки, так как стандартные
средства обслуживания печати должны позволить вам задать установки
порта для каждого принтера. Однако это важный шаг в обеспечении
работы принтера с обслуживанием печати, поэтому это
описывается далее более подробно.
Когда вы добавляете новый принтер, читайте документацию
для него, чтобы понимать, что он ожидает от главной системы
(обслуживания печати). Далее читайте страницу руководства для
команды stty(C) в документе User's Reference. В ней суммированы
различные характеристики, которые могут быть заданы для терминала
или порта принтера.
Только некоторые характеристики, перечисленные на странице
руководства stty(C), важны для принтеров. Те, которые интересны
для вас, перечислены в следующей таблице (но вы должны обращаться
к странице руководства stty(C) в других случаях).

Принтеры, соединенные напрямую с компьютерами, и принтеры,
соединенные через сети, требуют, чтобы характеристики порта
принтера устанавливались интерфейсной программой. Эти характеристики
определяют коммуникации низкого уровня с принтером. Сюда
включена скорость передачи, использование управления потоком
XON/XOFF, 7, 8 или другое количество битов на байт, четность,
выходная постобработка. Стандартная интерфейсная программа использует
команду stty для инициализации порта принтера, минимально
устанавливая скорость передачи и другие характеристики
по умолчанию.
Характеристики по умолчанию, используемые стандартной интерфейсной
программой, перечислены ниже.
Таблица 15.8
Возможности для stty по умолчанию

По умолчанию Значение
---------------------------------------------------------------------------

9600 скорость передачи 9600
cs8 8-битные байты
-cstopb 1 стоп бит на байт

-15-69-parenb
нет генерации четности
ixon разрешено управление потоком XON/XOFF
-ixany разрешен только XON для рестарта выхода
opost поток данных постобработки как перечислено ниже?
-oluc не отображайте строчные символы в прописные
onlcr отображение подачи на одну строки в возврат
каретки/подачу на одну строку
-onlcr не отображается возврат каретки в подачу на одну
строку
-nocr выходные возвраты каретки даже с колонки 0
nl0 нет задержки после подачи на одну строку
cr0 нет задержки после возвратов кареток
tab0 нет задержки после табуляций
bs0 нет задержки после возвратов
vt0 нет задержки после вертикальных табуляций
ff0 нет задержки после переводов страницы

Вы можете обнаружить, что характеристики по умолчанию достаточны
для ваших принтеров. Однако принтеры сильно различаются,
так что может потребоваться задание различных характеристик.
Смотрите описание команды stty в документе User's
Reference.
Если у вас имеется принтер, которому необходимы характеристики
порта принтера, отличные от тех, которые обрабатываются
программой stty, вам следует настроить интерфейсную программу.
Когда вы добавляете новый принтер, вы можете определить
дополнительный список характеристик порта, который будет использоваться
при печати каждого файла пользователя. Задаваемый
список будет использоваться после списка по умолчанию, так, что
у вас не будет необходимости включать в ваш список элементы по
умолчанию, которые вы не хотите изменять.
Задайте дополнительный список следующим образом:

Ъ2/usr/lib/lpadmin -p Ъ1printer-name Ъ2-o "stty='Ъ1stty-option-list'"

Ъ2 sysadmsh пользователи выбирают:
Printers--"Configure--"Parameters
(Принтеры--"Конфигурация--"Параметры)

Заметим, что двойные кавычки и одинарные кавычки необходимы,
если вы даете более одного элемента в

-15-69аstty-option-list.
Если вы не включаете характеристики альтернативного
порта принтера, то в таблице будет использоваться список
по умолчанию.
В качестве примера допустим, что ваш принтер будет использоваться
для печати графических данных, тогда символы подачи
строки должны быть выходными отдельно без добавления возврата-каретки.
Следует ввести следующую команду:

/usr/lib/lpadmin -p printer-name -o "stty=-onlcr"

Заметим, что отдельные кавычки опущены, так как в списке имеется
лишь один элемент.

-15-70-

В другом примере допустим, что ваш принтер требует нечетной
четности для данных, которые пересылаются на него. Следует
ввести следующую команду:

Ъ2/usr/lib/lpadmin -p Ъ1printer-name -o "stty='parenb parodd cs7'"

Настройка базы данных terminfo

Обслуживание печати основывается на стандартном интерфейсе
и базе данных terminfo при инициализации каждого принтера и установке
выбранного размера страницы, шага символов, шага строки
и набора символов. Таким образом, обычно достаточно иметь корректный
элемент в базе данных terminfo для добавления нового
принтера для обслуживания принтера. Несколько элементов для
распространенных принтеров содержатся в элементах базы данных
terminfo с пакетом обслуживания печати.
Каждый принтер идентифицируется в базе данных terminfo коротким
именем. Этот вид имени идентичен виду имени, используемому
для установки переменной оболочки TERM, например, AT&T модели
455 идентифицируется именем.
Если вы не можете найти элемент terminfo для вашего принтера:
вам следует добавить его. Если вы не сделаете это, вы можете
еще использовать принтер с обслуживанием печати, но вы не
можете получить автоматический выбор размера страниц, шага и
набора символов и у вас могут возникнуть проблемы при отслеживании
набора принтеров в корректных режимах для каждого запроса
печати. Другая возможность, которую можно использовать вместо
обновления элемента terminfo, состоит в настройке интерфейсной
программы, используемой с принтером. Смотрите следующий раздел
для получения сведений о том, как это делать.
Имеются сотни элементов, которые могут быть определены для
каждого терминала или принтера в базе данных terminfo. Однако
обслуживание печати использует менее половины из них, а большинству
принтеров необходимо даже меньшее количество. В таблице
15.9 перечислены элементы, которые необходимо определить (как
подходящие для принтера) для добавления нового принтера к обслуживанию
печати.

-15-71-

Таблица 15.9

Определение terminfo
Элемент terminfo
---------------------------------------------------------------------------

Булевские
значения

daisy принтер требует, чтобы оператор изменил набор
символов
Числа

bufsz число байтов, буферизуемых перед печатью
cols число колонок в строке
it метки табуляции начально располагаются через
каждый промежуток # пробелов
lines число строк на странице
orc горизонтальное разрешение в единицах на символ
orhi горизонтальное разрешение в единицах на дюйм
orl вертикальное разрешение в единицах на символ
orvi вертикальное разрешение в единицах на дюйм
cps средняя скорость печати в символах в секунду

Строки:

cr возврат каретки
cpi изменение числа символов на дюйм
lpi изменение числа строк на дюйм
chr изменение горизонтального разрешения
cvr изменение вертикального разрешения
csmn список имен набора символов
mgs сброс всех полей (верх, низ и кр

Список страниц

Закладка в соц.сетях

Купить

☏ Заказ рекламы: +380504468872

© Ассоциация электронных библиотек Украины

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