Руководство системного администратора • третье издание { h h y с п п т п р



Pdf просмотр
страница68/82
Дата12.11.2016
Размер7.94 Mb.
Просмотров13849
Скачиваний0
ТипРуководство
1   ...   64   65   66   67   68   69   70   71   ...   82
JTO
происходит вследствие недостаточного контроля со стороны администрации Для того чтобы упростить администрирование, следует попытаться обустроить сеть так, чтобы все сетевые принтеры контролировались небольшим количеством компьютеров. Другие компьютеры должны просто передавать задания на эти серверы печати Подобный подход позволит избежать излишних трудозатрат, потому что вам не придется опекать систему печати на каждой машине. Кроме того, при возникновении каких-либо проблем с печатью потребуется исследовать относительно немного конфшураций. Многие сетевые лазерные принтеры включают в свой состав Благодаря этому UNIX-клненты могут посылать файлы на принтер точно так
/ 4 2 Часть III. Розное
же. как они отправляли бы их на сервер. Поскольку все рассматриваемые нами операционные системы могут посылать задания на сервер, эти принтеры нам нравятся больше других. Старые сетевые принтеры требуют, чтобы задания на печать посылались на ТСР-порт 9100. Такую конфигурацию трудно поддерживать в системах печати BSD и System V, но она упрощается при использовании системы
LPRng. Если у вас именно такой принтер, мы настоятельно рекомендуем почитать о системе LPRng в параграфе 23.6. Жизнь без PostScript принтеры, естественно, поддерживаются системами печати
UNIX, и конфигурировать такие принтеры относительно просто. К сожалению, принтеры, не относящиеся к упомянутой категории, в частности струйные и дешевые модели лазерных, использовать труднее. Для того чтобы печатать на принтере, не поддерживающем технологию
PostScript, часто бывает необходимо специальное программное обеспечение, выполняющее "перевод" задания иа печать на язык PDL. понятный принтеру. Некоторые поставщики предоставляют соответствующее программное обеспечение. как правило, за отдельную плату. Альтернативой этому является свободно распространяемый пакет ghostscript. который может преобразовать предназначенное дпя принтера задание в страницы. подходящие для сотен принтеров. Вам придется соответствующим образом настроить фильтр печати, чтобы он "иа лету" выполнял необходимое дня работы ghostscript преобразование. В документации ghostscript приведены соответствующие примеры. При использовании системы LPRng решение этой задачи облегчается.
Более детальная информация о пакете ghostscript содержится в параграфе 23.8.
23.3. система печати Система печати BSD была разработана специально для использования построчно-печатающих принтеров. К счастью, удачная "конструкция" этой системы позволяет легко приспосабливать ее для печати на большинстве современных принтеров. Сетевая часть системы печати BSD также хорошо масштабируется для использования в больших неоднородных сетях и позволяет многим компьютерам совместно использовать принтеры. Спулер печати Ipd фактически стал стандартом де-факто и применяется во многих сетевых принтерах. Из числа рассматриваемых в нашей книге систем Red Hat и FreeBSD используют систему печати BSD как основу для своего программного обеспечения печати. Обзор процесса печати В системе исем доступом к принтерам управляет демон Ipd, который обычно находится в каталоге /usr/lib и запускается в процессе загрузки системы. Демон Ipd отвечает за прием заданий на печать от пользователей и других (удаленных) демонов Ipd, обрабатывает их и посылает на свободный принтер. Чтобы выполнить указанные действия. Ipd считывает данные о конфигурации принтера из файла /etc/prmtcap — базы данных системы, содержащей информацию о принтерах.
Гпова 23 Печоть
7 4 3
Пользователи, для отправки своих заданий на печать демону Ipd, пользуются услутами команды lpr. Эти два процесса взаимодействуют через сокет /dev/printer. Рассмотрим процесс выбора принтера, на который необходимо послать задание печати. Если программе 1рг передается аргумент -Рпринтер, то пунктом назначения становится принтер. В противном случае проверяется среда на предмет наличия переменной PRINTER. Если эта переменная определена, используется ее значение. Во всех остальных случаях задание перелается на общесистемный принтер, заданный по умолчанию. Почти все команды, относящиеся к печати, включая Ipq и Iprm, понимают аргумент -Р и переменную среды PRINTER. Как только команда lpr узнает, на какой принтер направляется текущее задание, она начинает искать этот принтер в базе данных о принтерах системы
(/etc/printcap). Изданного файла команда lpr получает имя каталога, в который следует помещать задания печати для указанного принтера. Этот "буферный каталог" обычно носит имя /var/spool/имя_принтера.
Для каждого задания команда lpr создает в буферном каталоге два файла. Имя первого состоит из букв cf (control file) и числа, идентифицирующего задание. Этот файл содержит справочную информацию и информацию об обработке задания, например сведения о пользователе, который его передал. Числовая часть имени файла может состоять максимум из трех цифр, поэтому при наличии в очереди более 999 заданий система печати начинает работать некорректно Имя второго файла начинается с букв df (data file) и заканчивается тем же числом. Этот файл содержит данные, подлежащие печати. После его постановки в очередь команда lpr уведомляет демона Ipd о существовании задания. Получив это уведомление, демон Ipd обращается к файлу printcap и выясняет местонахождение пункта назначения локальный он или удаленный Если в файле printcap указано, что принтер подключен локачьно, демон Ipd проверяет наличие демона печати, обрабатывающего соответствующую очередь, ив случае отсутствия такового создает его (те. экземпляр самого себя. Если соответствующий принтер подключен к другому компьютеру, демон
Ipd устанавливает соединение с демоном Ipd удаленного компьютера и пересылает туда файл данных и управляющий файл Затем демон Ipd удаляет локальные копии этих файлов. Планирование заданий печати осуществляется по алгоритму "первым пришел — первым обслужен" (FIFO), но системный администратор может при желании изменить порядок печати с помошью команды 1рс. К сожалению, нет возможности дать системе печати инструкцию о том, чтобы она все время отдавала предпочтение заданиям, направленным на печать тем или иным пользователем или компьютером. Когда задание готово к печати, демон Ipd создает ряд программных канатов между буферным файлом и печатающим устройством для передачи данных, подлежащих печати. Посередине этой цепочки демон Ipd устанавливает процесс-фильтр, в задачи которого входит просмотри. возможно, редактирование содержимого потока данных, прежде чем они поступят на принтер.
Процессы-фильтры могут выполнять над данными различные преобразования либо вообше ничего не делать. Основное их назначение — обеспечивать форматирование для специальных прикладных программ и В процессе обработки задания программой lpr этот файл называется tf (temporary fde). После записи файла lpr меняет его имя сна
Чость III. Розное
поддерживать все зависящие от устройств протоколы, которые могут понадобиться для работы сданным принтером. В командной строке Ipr можно назначить для принтера другой фильтр вместо заданного по умолчанию Управление средой печати На практике лля ежедневного сопровождения системы печати необходимо знать всего три команды Ipq, Iprni и Ipc. Команда Ipq позволяет просматривать очередь заданий, ожидающих печати на конкретном принтере. Посредством команды Iprni можно удалять одно или несколько из этих заданий (при этом стираются соответствующие файлы данных и из системы печати удаляются все ссылки на них. Обе эти команды доступны для пользователей, и обе работают в сети, не оказывая влияния на работу системы. Команда 1рс позволяет вносить изменения в среду печати например, отключать принтеры и переупорядочивать очереди печати. Некоторые из ее функций доступны для пользователей, нов основном это средства администратора.
Тоблицо 23.1. Комонды системы печоти BSD
Комондо Местонахождение Выполняемая функция
Ipq
/usr/bin Показывает содержимое и статус очереди на печать
Ipr
/usr/bin Ставит задания в очередь на печать
Iprni
/usr/bin Ликвидирует очередь или отменяет задание иа печать
Ipc
/usr/sbin Управляет принтером илн очередью на печать
Ipd
/usr/sbin Включает и очередь и выводит на принтер задания на печать
Iptest
/usr/bin Создаст тестовый код
Ipunlock
/usr/bin Разблокирует "зависший" принтер (только в Red
Hat) printtool
/usr/bin
Конфигурирует указанную систему печати (только в Red Hat)
Iptcontrol
/usr/sbin
Конфигурирует для печати параллельный порт только во FreeBSD) Демон Ipd: BSD-спулер печати Когда демои Ipd приступает к своей работе, он считывает файл
/etc/printcap, в котором содержатся данные о принтерах системы. Затем он начинает печать какого-нибудь задания, ожидающего этого момента в буферном каталоге, и принимается за считывание нового задания на печать. Демон Ipd, запущенный с флагом -1. регистрирует задания на печать в системе Syslog от имени средства "ipr". Прн отсутствии флага -I этот демон регистрирует только системные ошибки. Управление доступом производится на каждом компьютере, система печати BSD не позволяет осуществлять контроль за конкретным удаче иным пользователем Только компьютеры, имена которых значатся в файлах На самом деле возможна реализация аутентификации в фильтрах печати. Но так как в большинстве систем используются различные варианты фильтров, на практике не поддерживается единый способ контроля доступа.
Глово 23. Печоть
7 4 5

/etc/hosis.equ или /etc/hosts.Ipd. имеют возможность ставить задания в очередь на печать. Помните, что добавление имени какого-либо компьютера в файл
/etc/hosts.equiv означает абсолютное "доверие" этому компьютеру- Мы рекомендуем всегда использовать файл /etc/hosts.lpd для контроля за доступом к принтеру. Если необходима более надежная модель зашиты, рассмотрите возможность перехода к системе LPRng
Более подробную информацию о файле hosts.equiv можно найти в параграфе 21.6.
Команда lpr: выдача заданий на принтер Единственная программа н системе BSD. которая может выстраивать подлежащие печати файлы в очередь. — это команда lpr. Все остальные программы, используемые для печати файлов (например, программы cnscripi и netscape), делают это. вызывая программу lpr. В качестве аргументов команды 1рг могут быть использованы несколько полезных опций. Флаг -#число позволяет напечатать количество копий, равное значению число, а флаг -h запрещает печать титульной страницы. Как напоминание о временах, когда принтеры печатали очень медленно, существует флаг -т обеспечивающий уведомление пользователя о том, что его задание на печать выполнено, по электронной почте. Например, чтобы напечатать две копии файла thesis на принтере howlcr-lw. следует ввести следующую команду
% l p r - P h o w l e r - l w - # 2 t h e s i s Команда Ipq: просмотр очереди печати Команда Ipq обычно применяется с опцией -Р но можно использовать и другие аргументы командной строки, чтобы ограничить перечень просматриваемых заданий. Выходные данные команды Ipq выглядят примерно так
* I p q a n c h o r - - I j i s r e a d y a n d p r i n t i n g
R a n k
O w n e r
J o b
F i l e s
T o t a l S i z e a c t i v e g a r t h
3 1 4 d o m a i n . 2 x 1 . p s
2 9 6 7 7 8 b y t e s
1 s t k i n g e r y
2 8 6 s t a n d a r d i n p u t
1 7 6 9 1 b y t e s
2 n d e v i
12 a p p e n d i c e s
8 2 8 b y t e s
3 r d g a r t h
1 3 p r o c
43229
b y t e s
4 t h s c o u t
14 p e r i o d i c
1 6 6 7 6 b y t e s
5 t h g a r t h
1 6 s t a n d a r d i n p u t
4 8 9 b y t e s Впервой колонке дается информация о том, в каком порядке будут распечатываться задания. Эти сведения в принципе ненужны, потому что выходные строки всегда расположены по порядку активное задание указывается первым. Если первое задание обозначено как 1st. а не как active, это значит, что демон печати для принтера не запущен. Во второй колонке дается имя пользователя, который послал задание на печать. В третьей — идентификационный номер задания его необходимо знать, если впоследствии планируется обрабатывать это задание с помощью команд Iprm или 1рс. В четвертой колонке перечисляются указанные в командной строке lpr файлы, посылаемые на печать. Если данные для вывода на печать поступили по программному каналу (как. например, первое и пятое задания нашего примера, в этой графе будет стоять запись s t a n d a r d i n p u t . В пятой колонке указывается размер задания. Это значение соответствует размеру задания до его передачи в программу-фильтр и не дает информации о том. сколько страниц займет задание и как долго оно будет печататься.
7 4 6
Чость III. Розное
Команда Iprm: удаление заданий Самая распространенная форма команды Iprm — Iprm ид_задания, где
ид задания — идентификатор задания согласно выходным данным команды
Ipq. Команда Iprm пользователь удаляет все задания, принадлежащие указанному пользователю. Команда Iprm без аргументов удаляет активное задание. Если указать Iprm то будут удалены все задания, переданные на печать, если данную команду задает пользователь root, удаляются все задания, стоящие в очереди. Обычный пользователь не может удалить задания другого пользователя, в то время как супериользователь имеет право удалять любое задание Выходную информацию команда Iprm выдает только в случае успешного выполнения, в противном случае она молча уходит со сиены. Если вы не увидели что-нибудь наподобие d f A 6 2 1 x i n e t d e q u e u e d c £ A 6 2 1 x i n e t d e q u e u e d это значит, что команда Iprm вызвана неправильно. Система печати ре(истрирует происхождение задания и имя пользователя, который послал его на печать, что учитывается соответствующим процессом
Iprni. Так. пользователь ganh@bou!der неэквивалентен. и ни одни из них не может удалять задания другого. Попытка удалить с помощью команды Iprm активное задание может вызвать проблемы на некоторых принтерах (особенно на лазерных, где используется программное обеспечение TranScript фирмы Adobe). Процесс- фильтр задания надлежащим образом не уведомляется о прерывании, вследствие чего вся система со скрипом останавливается, а процесс-фильтр продолжает блокировать порт принтера, не давая использовать его другим процессам. Единственный способ исправить положение заключается в определении номеров проиессов-фильтров с помошью команды ps и уничтожении нх вручную. Команда Ipc в такой ситуации не годится. В принципе, при зависании демона Ipd есть хорошее лекарство — перезагрузка системы, но это радикальная мера. Прежде чем перезагружать систему, можно еще попробовать уничтожить и перезапустить главный экземпляр демона Ipd. Команда Ipc: внесение административных изменений Команда Ipc выполняет следующие функции включение и выключение режима постановки $аданий в очередь на конкретный принтер включение и выключение печати на конкретном принтере удаление всех заданий из очереди принтера перенесение задания в начало очереди принтера управление демоном Ipd; поучение информации о состоя!ти принтера. Когда система печати работает гладко, команда Ipc функционирует просто отлично. Стоит только "захлебнуться" фильтру или появиться другой незначительной проблеме, как команда 1рс полностью "сходит сума" и начинает, помимо всего прочего, просто врать иногда она заявляет, что все исправлено, тогда как наделе она и пальцем не пошевелила Приходится
Ггоео 23. Печать
747
устранять проблемы вручную и даже отключать и включать питание оборудования, если печать идет уж очень плохо. Команду 1рс нельзя использовать в сети нужно зарегистрироваться на компьютере, к которому подключен манипулируемый принтер. Обычно команда работает в диалоговом режиме, хотя возможен и разовый вызов путем включения интерактивной директивы в командную строку 1рс. В среде
1рс допустимо применение следующих директив. ha р [кома нда I Если директива help указывается без аргументов, то выдается краткий перечень всех команд, которые можно использовать в среде 1рс. При наличии аргумента выдается однострочное описание конкретной команды. па Ы « принтер
disable принтер
Эти команды служат для включения и выключения режима организации очереди заданий к указанному принтеру. Если постановка задания в очередь невозможна, пользователю вежливо сообщат об этом. Указанные операции выполняются посредством установки или сброса соответствующего бита кода прав доступа /\nr/spcol/принтер/lock для группы. s t a r t принтер
s t o p принтер Директива start включает, а директива stop — выключает печать на указанном принтере. После выключения печати на принтере постановка заданий в очередь продолжается, однако вывод их на печать приостанавливается до тех пор, пока печать не будет запущена внонь. Эти операции выполняются посредством установки или сброса бита выполнения для владельца файла /var/spool/wpwiwep/lock. Кроме того, указанные директивы уничтожают и запускают соответствующие демоны для принтера. Получив директиву stop, система печати сначала завершает активное задание и только после этого выключает печать. abort принтер
Директива abort работает также, как stop, но при этом не завершается активное задание. После возобновления печати задание будет печататься с самого начала down принтер сообщение
up принтер
Эти директивы влияют и на организацию очереди, и на печать. Они используются в случае серьезной поломки принтера и необходимости отключения его на длительный период времени. Параметр сообщение в директиве down может иметь произвольную длину (в пределах одной строки) и не должен заключаться в кавычки. Это сообщение помещается в файл
/\аг/&росА/принтер/$ЫШ принтера и выдается всем пользователям, которые запускают команду Ipq Как правило, сообщение содержит краткое разъяснение причины выхода принтера из строя и информацию о том, когда он вновь начнет работать. Действие директивы up обратно действию директивы down clean принтер
7 4 8
Чость III. Розное
Эта директива удаляет из очереди к принтеру все задания, включая активное. Поскольку демон печати для данной очереди все равно будет содержать ссылки на файлы текущего задания, то оно будет завершено.
topq принтер ид_эадания
topq принтер имя_польэова теля
Первая директива lopq перемешает в начало очереди печати указанное задание, а вторая — все задания, принадлежащие пользователю имя_пользо-
вателя.
гвоtart принтер
Данная директива используется для перезапуска демона печати, который таинственным образом "скончался. О том, что демон "мертв, можно узнать, когда команда Ipq сообщит "No daemon present". На первый взгляд может показаться, что действие директивы restart аналогично действию последовательности директив stop/start, однако это не так если продолжает работать фильтр принтера, то с помощью директивы restart перезапустить принтер нельзя. a t a t u a принтер
Эта директива сообщит следующие сведения об указанном принтере ставятся ли задания в очередь к нему, включена ли печать, сколько заданий стоит в очереди, каково состояние демона данного принтера. Если в очереди заданий нет, появится нечто вроде
1рс> at-at.ua саг
с е г : q u e u i n g i s e n a b l e d p r i n t i n g i s e n a b l e d n o e n t r i e s n o d a e m o n p r e s e n t Факт отсутствия демона сам по себе не является причиной для беспокойства если очередь пуста, демон принтера "исчезает" и запускается вновь главным экземпляром демона Ipd только при постановке в очередь нового задания. Файл Файл /etc/printcap является основной базой данных системы печати. На принтер можно передавать задания только в том случае, если он описан в этом файле. Для файла /etc/printcap используется тот же формат, что и для файлов
/etc/termcap и /etc/remote. Каждый элемент начинается со списка имен принтера, разделенных вертикальной чертой (|). Затем следует ряд параметров конфигурации, разделенных двоеточиями. Каждый параметр имеет вид
хх=строка или хх#число, где хх — двухсимвольное имя параметра, а строка
и число — присваиваемые ему значения. Если никакого значения не присваивается, значит, переменная является булевой и ее присутствие означает "истина. Допускаются пустые операторы два двоеточия, стоящих рядом. Рекомендуется начинать и заканчивать каждую строку двоеточием, чтобы впоследствии легче было вносить изменения. Комментарии в файле /etc/printcap
Глово 23. Печоть
7 4 9
должны начинаться со знака решетки (#). Элемент может состоять из нескольких строк, причем строки, за которыми следуют строки продолжения, должны заканчиваться обратной косой чертой. Строки продолжения в целях повышения наглядности текста программы обычно размешаются с некоторым сдвигом по отношению к первой позиции. В качестве иллюстрации к описанию синтаксиса файла /etc/printcap дадим небольшой пример. Более полный пример приведен ниже, после описания переменных файла printcap
• H P L a s e r J e t 5 М r e m o t e p r i n t c a p . C S D e p a r t m e n t . a n c h o r - l j I c e r 1 1 - 5 6 I L a s e r J e t 5 M i n c e r l a b : \
: l p ^ / v a r / s p o o l / l p d / a n c h o r - l j / . n u l l : \
: s d
/ v a r / s p o o l / l p d / a n c h o r - l j : \
: l f = / v a r / a d m / l p d - e r r s : N
: r w : m x # 0 ; r m ^ a n c h o r : r p ^ a n c h o r - 1 j : Из первой строки видно, что c e r . a n c h o r - 1 ] , 1 - 5 6 и L a s e r J e t М in c e r l a b — это эквивалентные имена одного принтера. Данные имена представляют собой хорошо известные сокращения, номер комнаты, R
которой находится принтер, и его полное название. Принтерам можно присваивать сколько угодно именно обязательно следует указывать минимум три формы основного имени' сокращенную (три-четыре символа, которые удобно вводить, например cer); полную (ими компьютера и гип принтера, например a n c h o r - l j ) ; описательную (прочая информация, например LW P l u s in c e r l a b ) . Следующие две строки нашею примера содержат установки конфигурации для устройства с указанным именем (р. каталога спулинга (sd) и журнального файла ( I f ) Последняя строка определяет параметры соединения спринтером, входе которого осуществляется запись-считывание (r-.v), максимальный размер файла (inx. в данном случае размер неограничен, имя удаленного компьютера (rm) и имя удаленного принтера (гр. Задания, переданные в систему печати без конкретного пункта назначения, направляются на первый принтер, среди указанных имен которого есть "р м . Имя "ip" нельзя использовать в качестве основного имени принтера, поскольку замена стандартного принтера в лом случае будет затруднена. Переменные базы данных printcap Высокие "адаптационные способности" системы печати BSD в значительной степени обусловлены особешюстями файла printcap. Переменные базы данных printcap описаны на соответствующей гаап-странице руководства, а здесь мы рассмотрим лишь наиболее часто используемые переменные. Они приведены в табл. 23.2. Все элементы записи printcap должны обязательно включать абсолютные имена буферного каталога (sd). журнального файла ошибок (If) и устройства печати Ор). Если у вас современный принтер, то следует указать, что этот принтер открыт для записи и чтения (rw). чтобы он мог посылать сообшения о своем статусе и ошибках компьютеру.
7 5 0
Чость III. Розное
Таблица Часто используемые переменные программы Переменно я Тип Назначение Пример строка Каталог спулинга s d = / v a r / s p o o l / l p d / h o w l e r - I w i f строка Журнальный файл ошибок l £
/ v a r / i o g / l p r
I p строка Имя устройства l p - / d e v / l p C a i
строка Файл учетных записей a f = / u s r / a d m / l p r . a c c t rrn строка Имя удаленного компьютера r m = o e a s t . x o r . com r p строка Имя удаленного принтера r p = h o w l e r - 1 w o f строка Выходной фильтр o f = - / u s r / l i b e x e c / l p r / l p f i f строка Входной фильтр i f = / u s r / s b i n / s t y l a s c i i rax число Максимально- допустимый объем файла mx#0 s h булево значение Отмена печати заголовков s h Переменная sd: буферный каталог У каждого принтера должен бьггь свои буферный каталог. Все буферные каталоги должны находиться водном родительском каталоге обычно) и иметь имена, совпадающие с полными именами обслуживаемых ими принтеров в нашем примере) Буферный ката по г необходим даже в том случае, если описываемый принтер подключен к другому компьютеру задания находятся на локальном компьютере доте х пор. пока они не будут переданы на печать. При инсталляции нового принтера необходимо создать буферный каталог вручную и назначить ему код правд осту па. Ив качестве владельца, ив качестве группы для этого каталога должен быть указан пользователь Буферный ката по г для принтера включает также два статусных файла и s t a t u s . Файл содержит одно строчное описание состояния принтера. Эту строку формирует демон и использует команда. Назначение файла заключается в том. чтобы избежать активизации нескольких экземпляров демона водной очереди, кроме того, вне м хранится информация оба к т ив ном задании Программа в процессе управления с пули н го ми печатью напр и н тер е изменяет код правд осту пак файлу Переменная If: журнальный файл Ошибки, сообщения окот о р ы х присылаются фильтрами печати, регистрируются в файле, указанном в данной переменной. Один журнальный фай то шибок может коллективно использоваться всеми принтерами и размешаться где угодно. При создании записи этого файла указывается имя принтера" нарушителя" В приведенном выше примере журнальный файл. Журнальные файлы должны быть лаже для удаленных принтеров а вдруг возникнет проблема, касающаяся связи суда ленным компьютером
Более подробную информацию о журнальных файлах можно найти в главе / / .
Глава 23. Печоть
7 5 1
Имейте ввиду, что демон посылает сообщения обо шибка х в систему. Некоторые фильтры также направляют свои со об ш е ни я обо шибка х в систему. никак не регистрируя их во пределен ном в базе данных журнальном файле. Привоз ник нов е ни и проблем нужно проверять оба названных файла. Переменная р имя устройства Параметр имя_устройства должен задаваться только для локального принтера. Для локального принтера, подключенного через последовательный, параллельный или- порт, это файл в каталоге. с помощью которого происходит обращение к данному принтеру. Если в базе данных указан сетевой принтер (те. притер все т и , ан е просто" удаленный см. параграф, тов переменной р должен быть задан фиктивный) файл важен факт существования этого файла, нов качестве файла устройства он не применяется. Программа использует данные файла блокировки, соответствующего указанному впер ем е н ной 1р устройству, чтобы определить, используется принтер или нет. Даже если доступ к принтеру осуществляется пос е те во м ус о единению, переменная роб яз ат ель но должна быть задана. Необходимо указать уникальный файл, который существует и расположен на локальном диске. Переменная rw: режим открытия устройство Если принтер может посылать информацию ос воем состоянии компьютеру через свой файлу строй ст в ат он е обходим о , чтобы была определена булева переменная, потому что это устройство должно быть открыток а к для записи, таки для чтения. Режим чтения- записи полезен, поскольку позволяет сообщать данные об учетной записи ист ату се, поэтому некоторые фильтры требуют установления такого режима. Переменная af: учетный файл Если вы намереваетесь взимать плату зап о ль зова ни е принтером или просто хотите учитывать объем информации, распечатываемой пользователями, следует включить учет поданному принтеру, указав учетный файл. Учетный файл нужно задавать только на том компьютере, к которому принтер подключен физически, так как учетные записи делаются только после реального вывода задания на печать. Для обработки учетной информации используется команда рас. Обычно учетный файл данных принтера называется /\яг/айт/принтер-accl. В этот файл записывается количество страниц, напечатанных пока ж дому заданию обычно несоответствующее действительности, имя компьютера, скот о рог об ы лоза пущено задание, и имя владельца задания. Одной изо б яз ан нос те й входного фильтра принтера является генерация учетных записей. При использовании- принтеров вообще нес то и т доверять счетчику странице слито ль ко фильтр не запрашивает показания счетчика страниц дои после печати. Переменная т х : предельные размеры файлов Переменная т хи с пользуется для задания предельного размера файла, посылаемого на печать. Однако для большинства принтеров кроме построчно- печатающих) задавать эту величину бессмысленно. При печати небольших- и P C L - файлов могут быть выданы сотни никому ненужных страниц. Это несоответствием еж дура з мер ом файла и количеством страниц Часть III Розное
хорошо выявляется напр акт и к е , когда студенты пытаются печатать скомпилированные версии двоичных файлов, содержащих разработанные ими программы Если все пользователи обладают достаточной квалификацией, нес то и то бра щ ать сяк этом' средству. У некоторых пользователей имеются вполне законные причины для печати больших файлов. Вне которых системах значение переменной гпх, устанавливаемое по умолчанию, отлично от нуля означает отсутствие ограничений, и длят ого, чтобы иметь возможность выводить на печать большие задания, необходимо явно указать гг.х#0). Отметим, что переменная гпх является числовой, поэтому нельзя указывать ггх=0. Если действительно требуется знать, какое количество страниц могут печатать люди, необходимо использовать заказные программы- фильтры или перейти кси стеме. Переменные rm игр удаленный доступ В большинстве случаев к принтеру нужно обращаться нес одного, ас нескольких компьютеров сети. Даже если принтер сетевое устройство, следует выбрать один компьютер и назначить его ответственным за связь спринтером. Все остальные машины должны пересылать задания на этот компьютер. Это позволяет демону создавать единую очередь заданий, что исключает случаи конфликтов между компьютерами зап р а во управления принтером. Кроме того, если печать не работает, выбудете знать, где искать причину. В файле" удаленного" компьютера компьютера, не имеющего непосредственного соединения спринтером) присутствует группа из двух переменных, где указывается, куда посылать задание как в примере, рассмотренном выше. Впер ем е н ной определяется компьютер, на который должны направляться задания, а переменной гр задается имя принтера на этом компьютере. Ниже процессу дал е н ной печати рассмотрен более подробно и проиллюстрирован на конкретных примерах. Напер вы й взгляд, файл сущий кошмар для администратора, потому что элементы, в которых описывается локальный принтер, отличаются от элементов, где описывается принтеру дал е н н ы й . Выходи з этой ситуации может быть следующим нужно сделать имена для принтеров разными на локальном иуда ленном компьютерах, например и howler-Iw. Такая конфигурация делает принтеру дал е н н ы мл аж ед ля того компьютера, к которому он подключен, ноте мнем е нее, все отлично работает. Однако если вы хотите использовать команду, следует обращаться к принтеру. Переменные фильтры печати Фильтры выполняют целый ряд функций Фильтр печати, заданный по умолчанию обычно это, производит обработку управляющих символов в подлежащем печати тексте и , если требуется, генерирует учетную запись. Назаре эпохи на фильтры часто возлагались обязанности по выполнению различных функций форматирования, носе й час этап рак тика уже нет акра спрос т ранена, как раньше. Единственные специальные фильтры, скот о рым ивам, возможно, придется иметь дело это фит ь т р ы для обработки выходной информации программы выходной информации системы Те Хи дампов экрана. Если у вас только текстовый принтер, вообще забудьте ото м , что такое фильтры. Если у вас лазерный принтер, наборное устройство или графопостроитель, тоне обходимые фильтры, как правило, имеются в комплекте
Глово 23. Печоть
7 5 3
поставки программного обеспечения. Если вам нужно конф игу р и ров ать принтер, для которого у вас нет программных средств, придется внимательно изучить информацию о различных фильтрах, приведенную в этой главе В противном случае лучше пропустить эти сведения и жить в блаженном неведении. Фильтры это, как правило, просто сценарии, которые вызывают ряд конвертирующих программ Программа- фильтр должна принимать задание печати сост ан дар т ног о ввода, конвертировать это задание в формат, поддерживаемый данным устройством, и посылать результат наста н дар т н ы й вывод. Если при выполнении программы пользователь не указал фильтр, то будет использоваться либо входной фильтр, либо выходной. Эти имена нельзя назвать удачными, ибо оба фильтра нас а м ом деле служат для посылки данных принтеру. Когда в файле присутствует переменная. нонет переменной, устройство будет открываться один разд ля каждого задания, а фи я ь т р будет посылать одно задание напр и н тер из а вершат ь работу. Если есть выходной фильтр, нонет входного, то демон однократно откроет устройство ивы зовет программу- фильтр для посылки сразу всех заданий, стоящих во черед и . Это средство полезно длят е х устройству становление соединения скот о рым из ан им а е т много времени нота к и е , однако, встречаются редко. При наличии в файле переменных. ивы ход ной фильтр будет использован для передачи страницы заголовка и будет вызван даже в том случае, если печать заголовков отключена, а входной будет вызван для передачи задания. Такая комбинация слишком сложна для простых смертных, поэтому лучшее е избегать. Если приходится создавать новые фильтры, ориентируйтесь на входные фильтры их легче отлаживать. Входные фильтры вызываются см ног очи с ленными аргументами, которые в каждой реализации свои. Наиболее заслуживающие внимания из них — имя пользователя, имя компьютера и имя учетного файла. Если вы желаете организовать учет работы принтера, входной фильтр должен генерировать учетные записи и добавлять их куче т ному файлу. Е с л н необходимо ограничить доступ к принтеру например, запретить доступ пользователю на всех компьютерах, то эту обязанность тоже нужно возложить на входной фильтр, поскольку у демона нет встроенных средство грани ч е ни яд осту па отдельных пользователей кси стеме печати Чтобы проиллюстрировать использование фильтров, рассмотрим очень простой пример св ход н ы м фильтром. Этот пример для- принтера, подключенного через последовательный порт клока льном у компьютеру u s r / l o c a l / b i n / t e x t p s $ * I / u s r / l o c a l / b i n / p s r e v e r s e Поскольку принтер подключен последовательно, демон открывает это устройство с соответствующими режимами согласно указаниям в файле. Первой вызывается программа. которая анализирует входные данные и определяет их формат. Если это неф о р мат который поддерживает наш принтер, данные конвертируются в этот формат. Указанная программа берет все переданные ей аргументы фильтра) и на основе данной информации должна генерировать учетные записи. Вторая
7 5 4
Чость III. Розное
программа, изменяет порядок следования страниц на обратный, чтобы они вы холили в соответствующей последовательности. Переменные базы данных printcap для последовательных устройств Следующие несколько переменных полезны только для локальных принтеров, подключаемых к последовательному порту. Если вы устанавливаете сетевой принтер, остальную часть этого параграфам о же те не читать. Вместо этого откройте инструкцию, найдите спецификации, касающиеся линии связи, и изучите их. С помощью переменных файлам о ж но контролировать параметры связи трех типов скорость в бодах, биты установки флагов и биты локального режима. Переменная Ьп скорость передачи в бодах Если принтер подключен к последовательному порту, понадобится переменная. Последовательный принтер ничем не отличается отд р у г их аппаратных средств для нормального функционирования следует согласовать набор коммуникационных параметров, определяющих взаимодействие принтера и компьютера, в частности скорость передачи, четность и ло> и ку управления потоками Конфигурация принтера имеет много общего с конфигурацией терминала. Обзор последовательных устройств и кабельных систем приведен в главе. В файле можно задавать три параметра скорость передачи в бодах. биты флагов и биты локального режима. Скорость передачи в бодах целое число. Поскольку это числовое значение, для его установки используется знак решетки Например устанавливает скорость передачи бит с . Переменные fc и fs: биты флагов Значения битов флагов и битов локального режима см. нижет о же целые числа, ноу станов койка ж дог обита такого числа задается конкретный параметр порта. Для правильной установки этих параметров необходимо найти описание значений каждого бита на та пс т рани и е , посвященной драйверу раздела не I) и определить, значения каких битов следует установить или сбросить. Значения надлежит корректировать только на том компьютере, к которому подключен принтер. Существуют две переменные, которые можно использовать для корректировки битов флагов и f s . Переменная сброс флага) задает биты, которые нужно выключить установка флага биты, которые нужно включить. Биты, неуказанные нив одной из этих переменных, принимают значения, заданные по умолчанию. Одновременно устанавливать и сбрасывать бит бессмысленно нора з влечения ради можно попробовать. Подробно назначение каждого бита флагов описано на та пс т рани цедра й вера. Переменные xs и хс: биты локального режима Биты локального режима полезны только для построчно- печатаю ш их принтеров, подключаемых к последовательному порту. Переменные х си убирают и устанавливают индивидуальные биты режима во многом аналогично тому, как переменные и f s убирают и устанавливают биты флагов
Глово 23. Печоть
7 5 5
Различие между битами флагов и битами локального режима состоит в том, что последние предназначены для конфигурации последовательного драйвера, а первые для реального канала связи. Большая часть битов режима предназначена для использования винтера к т ив н ы х видеотерминалах и не относится к конф игу р и ров ан и ю принтера. Расширения базы данных printcap Ус вязки программ есть одна прекрасная особаныость: они не обращают внимания нанес та н дар т н ы е переменные. Во многих случаях, когда принтеру нужно больше информации окон фигурации, чем имеется в базовой системе, можно определять в файле дополнительные переменные, которые будут использоваться фильтрами принтера. Например, для выходного фильтра сетевого принтера требуется сетевое имя этого устройства. В элемент файла для этого принтерам о ж но добавить следующую запись
: nn="laser. C o l o r a d o . e d u : \ Использование такого рода расширений позволяет хранить всю информацию окон фигурации принтера водному доб ном для вас месте. Если вы вдруг увидите в файле переменные, не упомянутые на гоап-странице, поищите их значения в документации надрай веры принтера. В нашей сети документируется физическое местоположение каждого принтера. Наши принтеры имеют записи типа Мы используем сценарии, которые отслеживают наличие бумаги и запас тонера в этих принтерах и при необходимости посылают в группу технического обслуживания со об ш е ни я типа "Добавьте бумагу в принтер, находящийся в комнате 423 Инженерного корпуса. За более подробной информацией ом они тори н г е сетевых устройств обратитесь к главе 20. Печать не на принтеры Недавно мы рассматривали случай "творческого неправильного использования, окот о ром сообщил Ш он Мак кр и р и (Sean МсСгеагу), когда система печати BSD применялась для загрузки в буфер музыкальных файлов в формате М Р З , в результате чего получался своеобразный музыкальный автомат, Оставляя в стороне этическую сторону делам о ж но сказать, что это — прекрасная характеристика гибкости системы печати Запись в файле выглядит примерно так m p 3 - l o c a l ; \
: sd=/var/spool/lpd/inp3-local: \
:lf-/var/log/lpd-errs:\
:if-/usr/local/lib/mp3-play:\
:lp»/dev/null:\
:mx#C: Настоящий М Р З - пл ей ер, по умолчанию не читает данные из потока stdln, поэтому сценарий, состоящий из одной строки, называемый, связывает его с системой печати
#'/bin/sh exec /usr/local/bin/amp -
7 5 6
Чость III. Разное

23.4. Печать в System V К сожалению, система печати проектировалась без учета потребностей печати все т я хи кн о вы м условиям работы адаптируется стр у дом. Использующие ее производители внесли многочисленные изменения, одни из которых способствовали расширению ее фу н к пиона л ъ н ы х возможностей, в тов ре мяк а кн аз нач е ни ед р у г их объяснить трудно. Из числа рассматриваемых нами систем используют и
H P - U X . Однако обе существенно ее модифицировали. Ниже будет рассмотрена стандартная система см ног очи с ленными примечаниями, касающимися конкретных систем. Обзор Пользователь, желающий что- нибудь вывести на печать, должен использовать либо команду р, либо команду, которая косвенно вызывает р. Команда р получает входной файл и помещаете го в буферном каталоге, соответствующем пункту назначения этой информации. Демон определяет, когда и где должен быть распечатан конкретный файла затем выполняет интерфейсную программу, которая форматирует данные ивы водит их назад ан н ы й принтер. Краткое описание команд системы печати приведено в табл.
Тоблицо 23.3. Комонды печоти АТТ-сисгемы
Командо Местонахождение Функция a c c e p t
/ u s r / s b i n Запуск приема заданий для данного устройства c a n c e l
/ Ы п Отмена поставленного в очередь или печатаемого задания disable
/ b i n Выключение печати на устройстве
I
e n a b l e
/Ып
Включение печати на устройстве



Поделитесь с Вашими друзьями:
1   ...   64   65   66   67   68   69   70   71   ...   82


База данных защищена авторским правом ©nethash.ru 2019
обратиться к администрации

войти | регистрация
    Главная страница


загрузить материал