Еще одно различие между вариантами поддержки принтеров, не обрабатывающих PostScript-данные, связано с качеством выходных данных. Используя Ghostscript, вы полагаетесь на реализованные в этом продукте средства генерации изображений. Чаще всего Ghostscript хорошо справляется с этой задачей, но в некоторых случаях драйверы целевых принтеров генерируют изображения гораздо лучшего качества. В особенности это бывает заметно при работе с последними моделями струйных принтеров. Некоторые принтеры вовсе не поддерживаются Ghostscript; для такого устройства возможна лишь одна конфигурация, предполагающая использование драйвера этого принтера на стороне клиента и очереди без обработки в системе Linux. Бывают ситуации, в которых интерпретатор Ghostscript предпочтительнее драйвера целевого принтера. Это случается при работе с приложениями, непосредственно ориентированными на работу с PostScript-принтерами (например, пакетами, предназначенными для организации настольных издательских систем), или при выводе на печать файлов EPS (Encapsulated PostScript). Необходимо заметить, что интерпретатор Ghostscript позволяет обеспечить PostScript-совместимость, затратив для этого минимальные усилия. Преимуществом использования Ghostscript также является тот факт, что данный интерпретатор обеспечивает реальную возможность стандартизировать вывод на печать, т.е. исключает необходимость переключаться между различными принтерами.
С проблемой качества изображения непосредственно связана проблема обеспечения необходимого уровня гибкости при работе с драйверами. Используя Ghostscript, вы устанавливаете разрешение и другие параметры принтера с помощью опций интерпретатора. В системе Linux эти опции обычно задаются при создании очереди. Для того чтобы выводить данные с различным разрешением, необходимо сформировать несколько очередей и переключаться между ними. Если на клиентской машине установлен драйвер целевого принтера, пользователь может выбирать разрешение и управлять другими характеристиками печати с помощью опций этого драйвера. Так, например, организуя работу со струйными принтерами, гораздо удобнее устанавливать драйверы этих принтеров на стороне клиента.
Таким образом, на вопрос о том, следует ли использовать Ghostscript или драйвер целевого принтера, невозможно дать однозначный ответ. Выбирая конфигурацию системы, следует учесть специфику решаемых задач и характеристики вашей сети. При желании вы можете также поэкспериментировать с обеими конфигурациями и на практике определить, какой подход дает лучшие результаты в вашей сети и с вашими принтерами. Скорее всего, вы убедитесь в том, что для одних принтеров целесообразно использовать Ghostscript, а для других лучше установить драйверы этих принтеров на клиентском компьютере.
Сценарии Samba
Одна из самых привлекательных особенностей Samba — возможность выполнения сценариев. Вы можете задавать команды, которые будут выполнены при наступлении определенных событий. Благодаря поддержке сценариев Samba можно использовать для решения задач, непосредственно не относящихся к совместному использованию файлов и принтеров. В начале данного раздела мы обсудим сценарии preexec и postexec и псевдопринтеры, а в заключение рассмотрим примеры использования этих средств.
Сценарии preexec и postexec
Samba поддерживает параметры preexec и postexec, которые позволяют выполнять некоторые команды при регистрации пользователя и завершении его работы с разделяемым объектом. В качестве значения параметра preexec задаются команды, которые должны быть выполнены при регистрации пользователя, соответственно команда, указанная как значение postexec, выполняется при завершении работы пользователя с объектом. Например, если вы хотите, чтобы при обращении к разделяемому объекту сервер Samba передавал почтовое сообщение по адресу billy@harding.threeroomco.com, вы должны включить в определение этого объекта следующее выражение:
preexec = mail -s "Share being used" \
billy@harding.threeroomco.com
Если пользователь зарегистрируется для работы с объектом, Samba пошлет от его имени сообщение по адресу billy@harding.threeroomco.com. В поле Subject сообщения будет включена строка "Share being used", а по адресу отправителя получатель сможет выяснить, кто из пользователей работал с объектом.
Аналогично действует параметр postexec, но команда, заданная в качестве его значения, выполняется после окончания работы с объектом. Зная особенности работы Windows-клиентов с разделяемыми объектами SMB/CIFS, можно сделать вывод, что команда не будет выполнена сразу же после того, как пользователь закроет окно, открытое с помощью Network Neighborhood или My Network Places, но через некоторое время это обязательно произойдет.
Разновидностями параметров preexec и postexec являются параметры root preexec и root postexec. Отличаются они лишь тем, что команды, заданные в качестве значений root preexec и root postexec, выполняются от имени пользователя root. Таким образом, можно задавать команды, для выполнения которых требуются специальные привилегии. Используя эти параметры, следует соблюдать осторожность. Если вы допустите ошибку, у вас могут возникнуть проблемы, связанные с безопасностью системы.
При выполнении сценариев сервер Samba может обрабатывать переменные, перечисленные в табл. 7.1. Эти переменные позволяют настроить сценарии preexec и postexec для работы с конкретными пользователями, клиентами, операционными системами, установленными на клиентских компьютерах, и т.д. (Некоторые из переменных, представленных в табл. 7.1, специально предназначены для использования в разделяемых объектах принтеров.)
Таблица 7.1. Переменные, доступные в системе Samba
| Переменная | Назначение | ||
|---|---|---|---|
%a |
Операционная система на клиентском компьютере. Возможные значения: OS2 (OS/2), Samba, UNKNOWN, WfWg (DOS или Windows for Workgroups), Win2K, Win95 (Windows 95 или 98) и WinNT | ||
%d |
Идентификатор процесса сервера | ||
%g |
Основная группа, к которой относится пользователь, указанный в переменной %u |
||
%G |
Основная группа, к которой относится пользователь, указанный в переменной %U |
||
%h |
Доменное имя сервера (в домене TCP/IP) | ||
%H |
Рабочий каталог пользователя, информация о котором содержится в переменной %u |
||
%I |
IP-адрес клиента | ||
%j |
Номер задания на печать | ||
%L |
NetBIOS-имя сервера | ||
%m |
NetBIOS-имя клиента | ||
%M |
Доменное имя клиента (в домене TCP/IP) | ||
%N |
Сервер NIS | ||
%p |
Путь к каталогу, связанному с разделяемым объектом, используемый при автомонтировании | ||
%P |
Путь к каталогу, связанному с разделяемым объектом | ||
%R |
Уровень протокола SMB/CIFS. Возможные значения: CORE, COREPLUS, LANMAN1, LANMAN2 и NT1 | ||
%s |
Имя файла, переданного разделяемому объекту принтера | ||
%S |
Имя разделяемого объекта | ||
%T |
Текущая дата и время | ||
%u |
Эффективное имя пользователя UNIX | ||
%U |
Имя пользователя, зарегистрированного в системе UNIX (может не совпадать с именем, хранящимся в переменной %u) |
||
%v |
Номер версии Samba | ||