Пакет ncpfs содержит маленькую утилиту nprint, которая посылает задания по выводу на печать через подключения NCP в очередь печати NetWare. Эта команда создает подключение, если оно в настоящее время не существует и использует файл /.nwclient, чтобы скрыть имя пользователя и пароль. Параметры командной строки, используемые, чтобы управлять процессом входа в систему такие же, как и у ncpmount, так что мы не будем их изучать второй раз. Наиболее важные параметры командной строки nprint будут показаны в примерах.
Единственная требуемая опция для nprint имя файла для печати. Если имя файла не задано, nprint примет задание по выводу на печать из stdin. Наиболее важные параметры nprint определяют сервер и очередь. Таблица 15-4 перечисляет наиболее важные параметры.
Таблица 15-4. Опции команды nprint
Опция | Описание |
---|---|
-S server_name | Имя сервера печати. Удобно иметь соответствующую запись в файле /.nwclient. Она обязательна. |
-q queue_name | Очередь печати, в которую надо послать задание по выводу на печать. Эта опция обязательна. |
-d job_description | Текст, который появится в консоли печати при показе списка поставленных в очередь работ. |
-l lines | Число строк на страницу. По умолчанию 66. |
-r columns | Число столбцов на страницу. По умолчанию 80. |
-c copies | Число копий работы, которая будет напечатана. Значение по умолчанию 1. |
Простой пример использования nprint:
$ nprint -S REDS01 -q PSLASER -c 2 /home/matt/ethylene.ps |
Раньше я упомянул, что опция -c программы ncpmount полезна для печати.
Linux обычно использует программное обеспечение принтера BSD-стиля. Line printer daemon (lpd) является демоном, который проверяет локальный каталог буфера в поисках поставленных в очередь работ, которые должны быть напечатаны. Пакет lpd читает имя принтера и некоторые другие параметры из указанного файла форматирования и пишет данные на принтер, факультативно передавая данные через фильтр, чтобы трансформировать их или управлять печатью.
Демон lpd использует простую базу данных, названную /etc/printcap, чтобы сохранить конфигурацию принтера, включая то, какие фильтры должны выполняться. lpd обычно выполняется с правами специального системного пользователя lp.
Вы могли бы конфигурировать nprint как фильтр для lpd, который позволяет пользователям Вашей Linux-машины выводить данные непосредственно на удаленные принтеры, которые установлены на сервере NetWare. Чтобы сделать это, пользователь lp должен быть способен писать запросы на NCP-подключение к серверу.
Простой способ достичь этого: определить lp как владельца подключения, установленного другим пользователем. Полный пример того, как устанавливать Linux-печать, чтобы обработать задания по выводу на печать клиентов NetWare состоит из трех шагов:
Написать скрипт-обертку (wrapper script).
Файл /etc/printcap не разрешает передавать параметры фильтрам. Следовательно, Вы должны написать короткий скрипт, вызывающий команду, которую Вы хотите выполнить, с нужными параметрами:
#!/bin/sh # p2pslaser - simple script to redirect stdin to the # PSLASER queue on the REDS01 server # /usr/bin/nprint -S REDS01 -U stuart -q PSLASER # |
Сохраните его в файле /usr/local/bin/p2pslaser.
Мы будем должны конфигурировать p2pslaser как выходной фильтр в /etc/printcap. Это делается так:
pslaser|Postscript Laser Printer hosted by NetWare server:\ :lp=/dev/null:\ :sd=/var/spool/lpd/pslaser:\ :if=/usr/local/bin/p2pslaser:\ :af=/var/log/lp-acct:\ :lf=/var/log/lp-errs:\ :pl#66:\ :pw#80:\ :pc#150:\ :mx#0:\ :sh: |
ncpmount -S REDS01 .... -c lp .... |
Наш локальный пользователь stuart должен определить пользователя lp как владельца подключения, когда он устанавливает связь с сервером NetWare.
Теперь любой пользователь Linux может указать pslaser как имя принтера при вызове lp. Задание по выводу на печать будет послано на указанный сервер NetWare и помещено в очередь для печати.
Команда pqlist показывает все очереди печати, доступные Вам на указанном сервере. Если Вы не определяете сервер в командной строке, используя опцию -S или логин с паролем, они будут приниматься из заданной по умолчанию записи в файле /.nwclient:
# pqlist -S vbrew_f1 -U guest -n Server: ALES_F1 Print queue name Queue ID --------------------------- TEST AA02009E Q2 EF0200D9 NPI223761_P1 DA03007C Q1 F1060004 I-DATA 0D0A003B NPI223761_P3 D80A0031 |
Пример показывает список очередей печати, доступных пользователю guest на сервере ALES_F1.
Чтобы посмотреть задания по выводу на печать в очереди, используйте команду pqstat. Требуется имя очереди как параметр, и выводятся все работы в очереди. Вы можете факультативно задать другой параметр, указывающий сколько работ в очереди хотели бы внести в список. Следующий типовой вывод немного сжат, чтобы поместиться на странице:
$ pqstat -S ALES_F1 NPI223761_P1 Server: ALES_F1 Queue: NPI223761_P1 Queue ID: 6A0E000C Seq Name Description Status Form Job ID ---------------------------------------------------------------------- 1 TOTRAN LyX document - proposal.lyx Active 0 02660001 |
Вы может видеть только одно задание по выводу на печать в очереди, принадлежащей пользователю TOTRAN. Остальная часть параметров включает описание работы, состояние и идентификатор работы.
Команда pqrm используется, чтобы удалить задания по выводу на печать из определенной очереди печати. Чтобы удалить работу в очереди, скомандуйте:
$ pqrm -S ALES_F1 NPI223761_P1 02660001 |
Команда довольно проста, но неуклюжая для того, чтобы использовать ее в спешке. Было бы неплохо написать скрипт, чтобы упростить эту операцию.
Назад | Глобальное оглавление | Вперед |
Утилиты IPX | Локальное оглавление | Эмуляция сервера NetWare |