Параметр print command
имеет существенное преимущество перед preexec
и postexec
. При взаимодействии с разделяемым объектом соединение может остаться открытым, в результате сценарий postexec
долгое время не получит управления. Если же клиент инициирует задачу печати, команды, указанные в качестве значения print command
, сразу же выполняются. Однако следует учесть, что при выполнении некоторых операций две последовательно переданные на печать задачи могут повредить друг другу файлы с данными.
Пример использования средств Linux для записи компакт-дисков
С помощью сценариев можно сконфигурировать сервер Samba как платформу для создания компакт-дисков. Предположим, что вы администрируете сеть небольшого офиса, к которой подключены десятки клиентских компьютеров. Предположим также, что в офисе имеется лишь одно устройство, позволяющее записывать компакт-диски. Время от времени у разных пользователей возникает необходимость записать информацию на компакт-диск. Вы можете подключить устройство записи к компьютеру, на котором выполняется сервер Samba, и предоставить всем желающим возможность использовать программное обеспечение Linux для создания компакт-дисков. Однако при этом возникнут проблемы. Во-первых, вам придется обучить пользователей работать с программами записи. Во-вторых, некоторые пользователи не будут удалять после окончания записи свои файлы, что приведет к нерациональному использованию дискового пространства. Сценарии Samba позволяют автоматизировать процесс записи и разрешить возникающие проблемы.
Предположим, что вы решили выделить один из разделяемых объектов Samba для записи компакт-дисков. Этот объект не должен использоваться ни для каких других целей. Для создания компакт-диска с помощью сценариев preexec
и postexec
вам необходимо обеспечить выполнение следующих задач.
1. Удаление из разделяемого объекта всех файлов.
2. Получение файлов, предназначенных для записи на компакт-диск.
3. Создание образа диска с помощью mkisofs
или другой подобной утилиты.
4. Запись образа на компакт-диск с помощью cdrecord
или другой утилиты.
5. Удаление образа диска и файлов, из которых он был создан.
Описание разделяемого объекта, предназначенного для решения данных задач, выглядит следующим образом:
[cd-create]
path = /home/samba/cd-create
create mask = 0666
directory mask = 0777
read only = No
max connections = 1
preexec = /bin/rm -r %P/*
postexec = /usr/local/bin/create-cd %H %P %U
Параметр preexec решает первую задачу. Вторая задача решается с помощью обычных операций Samba. Для решения задач 3-5 предназначен сценарий /usr/local/bin/create-cd
, указанный в качестве значения второго параметра. Код этого сценария приведен в листинге 7.1.
Листинг 7.1. Сценарий, предназначенный для записи компакт-диска
#/bin/sh
# $1 - Рабочий каталог пользователя, выполняющего запись на диск
# $2 - Каталог с исходными файлами
# $3 - Имя пользователя, выполняющего запись на диск
mkisofs -J -r -о $1/image.iso $2
cdrecord speed=2 dev=4,0 $1/image.iso
mail -s "CD-R creation finished" $3
rm $1/image.iso
rm -r $2/*
Для создания описанного выше разделяемого объекта выполните следующие действия.
• Создайте сценарий create-cd
и сохраните его в каталоге /usr/local/bin
. Для файла, содержащего сценарий, надо установить права, позволяющие запускать его на выполнение (это можно сделать с помощью команды chmod а+x /usr/local/bin/create-cd
). Опции утилит mkisofs
и cdrecord
необходимо выбрать в соответствии с характеристиками вашего устройства записи.
• Создайте разделяемый объект Samba с именем [cd-create]
. При желании вы можете задать каталог, отличный от того, который был указан выше, но следите за тем, чтобы права доступа, установленные для него, позволяли всем пользователям читать и записывать данные.
Вильям Л Саймон , Вильям Саймон , Наталья Владимировна Макеева , Нора Робертс , Юрий Викторович Щербатых
Зарубежная компьютерная, околокомпьютерная литература / ОС и Сети, интернет / Короткие любовные романы / Психология / Прочая справочная литература / Образование и наука / Книги по IT / Словари и Энциклопедии