Читаем Сетевые средства Linux полностью

rm $1/image.iso

rm -r $1/cdr/samba

Сценарий и разделяемый объект, используемые в данном примере, надо сконфигурировать так же, как это было сделано для объекта [cd-create] и сценария create-cd. Файл, содержащий сценарий, должен быть определен как исполняемый, опции утилит mkisofs и cdrecord необходимо привести в соответствие с конфигурацией вашей системы, а для утилиты cdrecord надо установить признак SUID, чтобы она выполнялась с правами root. Для записи компакт-диска необходимо передать zip-файл разделяемому объекту, используя для этого команду COPY системы DOS или Windows.

С:\> COPY FILE.ZIP\\SERVER\CD-PRINT

В результате выполнения данной команды содержимое файла FILE.ZIP будет записано на компакт диск. Очевидно, что вместо SERVER при вызове команды должно быть указано имя конкретного сервера. Эту команду следует поместить в файл .ВАТ; имя zip-файла будет передаваться ей с помощью переменной.

COPY %1 \\SERVER\CD-PRINT

При вызове файла .ВАТ надо указать файл архива. Так, если файл, содержащий команду копирования, имеет имя MAKECD.ВАТ, то для его вызова используется команда MAKECD FILE.ZIP. Если вы создадите на рабочем столе ярлык, представляющий файл .ВАТ, то для записи компакт-диска достаточно будет перетащить файл архива на пиктограмму файла .ВАТ. В состав файла .ВАТ можно также включить вызов утилиты архивирования файлов. В этом случае, чтобы записать диск, пользователь должен будет собрать все необходимые ему файлы в одном каталоге и перетащить этот каталог на пиктограмму файла .ВАТ.

Как и при использовании разделяемого объекта файлов, решение, реализованное в данном примере, имеет ряд недостатков. При выполнении сценария не проверяется размер образа диска и не принимаются меры, препятствующие одновременному обращению двух пользователей к разделяемому объекту. Но сценарий, свободный от этих недостатков, был бы гораздо сложнее.

<p>Пример создания PDF-файлов</p>

В качестве примера использования очереди печати можно привести задачу преобразования входных PostScript-данных в PDF-файлы. Для ее решения надо создать очередь подобную той, которая используется для обработки данных, сгенерированных с помощью PostScript-драйвера. Описание разделяемого объекта имеет следующий вид:

[pdf-create]

comment = Create a PDF file

path = /var/spool/samba

printable = Yes

print command = gs -dNOPAUSE -q -dBATCH -sDEVICE=pdfwrite \

 -sOutputFile=%H/%s.pdf %s; rm %s

На заметку

Символ \, завершающий предпоследнюю строку, имеет специальное значение: он сообщает Samba о том, что в следующей строке находится продолжение текущей команды. Этот символ позволяет избежать появления в составе конфигурационного файла длинных строк и делает содержимое файла более удобным для чтения.

С помощью параметра print command вызывается исполняемый файл Ghostscript (gs). Опции -dNOPAUSE, -q и -dBATCH обеспечивают непрерывный вывод данных с минимальным набором специальных сообщений, не требующий вмешательства пользователя. Опция -sDEVICE=pdfwrite указывает на то, что в результате выполнения программы должны генерироваться PDF-файлы, а опция -sOutputFile=%H/%s.pdf формирует имена файлов, отличающиеся от имен заданий на печать только суффиксом .pdf. Сформированные PDF-файлы сохраняются в рабочем каталоге пользователя. Определение данного разделяемого объекта можно модифицировать так, чтобы PDF-файлы помещались в другой каталог или передавались пользователю в составе почтовых сообщений.

<p>Резюме</p>
Перейти на страницу:

Похожие книги