Европейский Университет в Санкт-Петербурге
Опубликован: 04.07.2008 | Доступ: свободный | Студентов: 1076 / 303 | Оценка: 4.30 / 3.78 | Длительность: 18:28:00
Лекция 10:

Печать в Solaris

< Лекция 9 || Лекция 10: 12 || Лекция 11 >

Добавление и настройка нового принтера

В моей сети есть принтер HP LJ 5L, который подключен к сети с помощью принт-сервера (маленькой коробочки с интерфейсом Ethernet, обученной работать с протоколом печати BSD). Адрес принт-сервера в сети – 192.168.5.22. Как добавить этот принтер в конфигурацию Solaris, чтобы на нем можно было напрямую печатать файлы?

Во-первых, надо создать запись об этом принтере в файле /etc/inet/ hosts или на сервере имен, чтобы система могла обратиться к принтеру по имени:

cat /etc/inet/hosts
#
# Internet host table
#
127.0.0.1 localhost
192.168.5.33 sunny loghost
192.168.5.22 hp5l

Затем следует модифицировать файл /etc/printers.conf:

cat /etc/printers.conf
#
# If you hand edit this file, comments and structure may change.
# The preferred method of modifying this file is through the use of
# lpset(1M)
#
hplj:\
:bsdaddr=hp5l,PS-1426:\
:description=hplj:
_default:\
:use=hplj:

Самая важная строка в нем – это bsdaddr. Помните, что в этой строке должно быть указано имя сервера, к которому подключен принтер (в нашем случае – это имя той самой коробочки-принт-сервера – hp5l ) и логическое имя принтера на этом сервере, т.е. то имя, под которым принтер известен серверу (в нашем случае это – PS-1426 ). Узнать это имя можно либо из документации к сетевому принтеру или принт-серверу, либо выяснить у администратора того компьютера, к которому подключен принтер, либо попробовать выяснить, подсоединившись с помощью telnet к принт-серверу:

telnet hp5l
Trying 192.168.5.22...
Connected to hp5l.
Escape character is '^]'.
************************************
* Welcome to D-Link Print Server *
* Telnet Console *
************************************
Server Name : ps-1426
Server Model : DP-101
F/W Version : 1.34
MAC Address : 00 50 BA 03 B6 47
Uptime : 64 days, 04:32:19

Программа Solaris Print Manager

Для настройки подсистемы печати в Solaris можно использовать утилиту Solaris Print Manager. Она предоставляет простой графический интерфейс для добавления, удаления или изменения настроек принтера в системе.

Важно отметить, что с точки зрения Solaris принтер должен уметь работать с языком PostScript. Использовать такой принтер с Solaris, равно и с любым другим UNIX, намного легче, чем принтер, не понимающий PostScript.

Вызов программы Solaris Print Manager выполняется командой

/usr/sadm/admin/bin/printmgr &

При запуске Solaris Print Manager вас спросят, какую службу имен следует использовать (рис. 10.3).

Первый вопрос программы Solaris Print Manager

Рис. 10.3. Первый вопрос программы Solaris Print Manager

Это связано с тем, что при подключении сетевых принтеров требуется определить их имена или имена хостов, к которым они подключены. Для подключения к таким принтерам с помощью Solaris Print Manager следует указать их IP-адреса в файле /etc/inet/hosts, в NIS или DNS.

На рис. 10.4 представлено главное меню Solaris Print Manager.

Главное меню Solaris Print Manager

Рис. 10.4. Главное меню Solaris Print Manager

Программа предоставляет весьма скромный сервис, как видно из рис. 10.5 и рис. 10.6.

Окно "добавить принтер" в Solaris Print Manager

Рис. 10.5. Окно "добавить принтер" в Solaris Print Manager
Окно "изменить свойства принтера" в Solaris Print Manager

Рис. 10.6. Окно "изменить свойства принтера" в Solaris Print Manager

Управление принтерами с помощью admintool

В системах Solaris, младших, чем Solaris 8, управление принтерами осуществлялось с помощью admintool. В настоящее время можно просмотреть свойства принтеров в системе с помощью admintool, но использовать эту программу для модификации этих свойств или добавления новых принтеров не следует. Для этого существует программа Solaris Print Manager, которая позволяет управлять всеми свойствами принтеров, добавлять новые и удалять ненужные принтеры из системы.

Файлы и каталоги конфигурации подсистемы печати Solaris

Принтер, выбираемый по умолчанию, должен быть поименован в переменных среды окружения LPDEST или PRINTER (проверяются именно в таком порядке), либо в переменной _default в файлах $HOME/.printers, /etc/printers.conf, либо в карте NIS printers.conf.byname. Если ни в одном из этих источников параметр с именем _default не обнаружится, стало быть, запрос на печать без указания имени принтера не может быть выполнен.

Исполняемые файлы подсистемы печати находятся в /usr/bin ( lp, lpstat, cancel ), /usr/sbin ( lpadmin, lpusers, lpshut ). В /usr/share/lib/terminfo содержится база данных принтеров и терминалов, в /usr/lib/lp находятся lpshed, фильтры для обработки файла перед отправкой на печать, некоторые другие полезные программы.

Каталог /etc/lp содержит файлы настроек подсистемы печати, а /var/spool/lp хранит текущие задания на печать и информацию о них.

Файл протокола подсистемы печати – это /var/lp/logs/requests:

...
= hplj-1, uid 0, gid 1, size 5, Срд 05 Май 2004 19:48:34
z hplj
C 1
D hplj
F /export/home/filip/q
P 20
T /export/home/filip/q
t simple
U root
s 0x0040
v 2
= hplj-2, uid 0, gid 1, size 5, Срд 05 Май 2004 19:49:11
z hplj
C 1
D hplj
F /export/home/filip/q
P 20
T /export/home/filip/q
t simple
U root
s 0x0040
v 2
...

Взаимодействие со службами имен

Для того, чтобы корректно направить задание на печать к требуемому принтеру, программе lp необходимо знать содержимое файлов /etc/printers.conf и /etc/nsswitch.conf:

cat /etc/printers.conf
...
lp:\
:bsdaddr=printbox,hplj, Solaris:
...
cat /etc/nsswitch.conf
...
printers: dns, nisplus, files
...

Из первого файла lp выясняет, что для печати на принтер с локальным именем lp следует отправить задание принтеру hplj на компьютере printbox. Из второго файла становится ясно, что для того, чтобы найти ip-адрес компьютера printbox следует воспользоваться службами имен в следующем порядке: обратиться к серверу имен службы DNS (согласно содержимому /etc/resolv.conf ); если с помощью DNS найти адрес не удалось, надо обратиться к серверу NIS+, а если и эта попытка оказалась неудачной, посмотреть, нет ли записи о printbox в файле /etc/inet/hosts.

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

Печать документов, просмотр и отмена заданий на печать

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

lp имя_файла

или

lpr имя_файла

Для просмотра очереди печати используют команду lpq:

bash-2.05# cat >> lptest
lptest
bash-2.05# lp lptest
request id is hplj-2 (1 file)
bash-2.05# lpq
Port Name PS-1426
==============================
[Total Status]
Job 41
Sizes (KBytes) 10546
Timeouts 0
------------------------------
[Current Job]
Printer Status On line
Index 0
Protocol
Name
Spooling Bytes 0
Printing Bytes 0
==============================

Отмена задания выполняется командой lprm:

lp name_to_sysnum
request id is hplj-4 (1 file)
lprm hplj-4

Команда lprm без параметров удаляет текущее (выполняемое) задание на печать.

Все эти команды принимают имя принтера (то, которым принтер назван в /etc/printers.conf или в базе данных NIS) с ключом :

lprm -P hplj

Уникальной особенностью Solaris является возможность активировать или деактивировать принтер, описанный в /etc/printers.conf. Это делается командами enable и disable соответственно. Более того, можно временно приостановить прием запросов на печать для определенного принтера командой

reject имя_принтера

и затем восстановить прием заданий командой

accept имя_принтера

В некоторых командных процессорах команды accept, reject, enable и disable могут быть встроенными командами командного процессора, и тогда следует найти команды подсистемы печати, используя find или whereis, а затем запускать их, указывая полное имя команд.

Настройка печати из Mozilla Firefox, StarOffice и OpenOffice

Для печати из упомянутых программ может потребоваться дополнительная настройка – в случае, если хочется иногда печатать не только на принтере, принятом в системе по умолчанию (кстати, следите, чтобы в /etc/printers.conf был корректно описан принтер с именем default – его часто ищут различные приложения; то же относится и к принтеру _default ).

Для печати из Firefox требуется отыскать каталог локальных настроек пользователя. Делаем так:

cd ~/.mozilla/firefox
grep default profiles.ini
Name=default
Path=ag2k9zrb.default
Окно программы настройки принтеров spadmin для StarOffice/OpenOffice

увеличить изображение
Рис. 10.7. Окно программы настройки принтеров spadmin для StarOffice/OpenOffice

Имя подкаталога, который нам нужен – то, что указано в строке Path. Идем туда и создаем файл user.js:

cd ag2k9zrb.default; cat user.js
user_pref("print.printer_list", "default prn04p16 prn04p17 lduplex");
user_pref("print.postscript.print_command", "/usr/bin/lpr
${MOZ_PRINTER_NAME:+'-P'}${MOZ_PRINTER_NAME}");
user_pref("print.print_command", "/usr/bin/lpr
${MOZ_PRINTER_NAME:+'-P'}${MOZ_PRINTER_NAME}");

Обратите внимание на список принтеров в первой строке – имена должны быть такие же, как в /etc/printer.conf.

Для настройки печати из StarOffice или OpenOffice следует запустить программу spadmin (рис. 10.7). В моем Solaris Express она находится в /opt/staroffice8/program/. Программа настройки принтеров для StarOffice и OpenOffice имеет графический интерфейс и достаточно проста в работе, так что здесь мы не будем останавливаться на ней подробно.

Многие приложения в Solaris могут отслеживать значение переменной среды окружения PRINTER для того, чтобы каждый пользователь мог указать тот принтер по умолчанию, который он предпочитает. Указываемый принтер должен быть описан в /etc/printers.conf.

< Лекция 9 || Лекция 10: 12 || Лекция 11 >
Александр Тагильцев
Александр Тагильцев

Где проводится профессиональная переподготовка "Системное администрирование Windows"? Что-то я не совсем понял как проводится обучение.