Пример использования средств Linux для записи компакт-дисков

Пример использования средств Linux для записи компакт-дисков

С помощью сценариев можно сконфигурировать сервер Samba как платформу для создания компакт-дисков. Предположим, что вы администрируете сеть небольшого офиса, к которой подключены десятки клиентских компьютеров. Предположим также, что в офисе имеется лишь одно устройство, позволяющее записывать компакт-диски. Время от времени у разных пользователей возникает необходимость записать информацию на компакт-диск. Вы можете подключить устройство записи к компьютеру, на котором выполняется сервер Samba, и предоставить всем желающим возможность использовать программное обеспечение Linux для создания компакт-дисков. Однако при этом возникнут проблемы. Во-первых, вам придется обучить пользователей работать с программами записи. Во-вторых, некоторые пользователи не будут удалять после окончания записи свои файлы, что приведет к нерациональному использованию дискового пространства. Сценарии Samba позволяют автоматизировать процесс записи и разрешить возникающие проблемы.

Использование сценариев preexec и postexec для записи компакт-дисков

Предположим, что вы решили выделить один из разделяемых объектов 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]. При желании вы можете задать каталог, отличный от того, который был указан выше, но следите за тем, чтобы права доступа, установленные для него, позволяли всем пользователям читать и записывать данные.

• Установите признак SUID для исполняемой программы cdrecord. Для этого можно использовать команду chmod a+s /usr/bin/cdrecord. В некоторых дистрибутивных пакетах для организации доступа к данной утилите создана специальная группа. Вы можете включить в эту группу пользователей, которым необходимо записывать компакт-диски, либо использовать параметр forсе group. Можно поступить и по-другому: заменить в определении объекта [cd-create] параметр postexec на root postexec. Необходимо лишь обеспечить, чтобы сценарий create-cd выполнялся с привилегиями, достаточными для успешного запуска утилиты cdrecord.

После выполнения описанных выше действий вы можете использовать созданный разделяемый объект. Работая в системе Windows, можно смонтировать этот объект с помощью Network Neighborhood или My Network Places. Для этого надо щелкнуть правой кнопкой мыши на имени объекта и выбрать в контекстном меню пункт Map Network Drive. Затем следует связать разделяемый объект с именем устройства. Монтирования каталога пользователь должен скопировать файлы, предназначенные для записи на компакт-диск, на сервер Samba. Он может перемещать файлы в пределах каталога, копировать, удалять их и выполнять другие подобные действия. Когда пользователь будет готов начать запись, ему следует вставить чистый диск в устройство и размонтировать разделяемый объект, щелкнув правой кнопкой мыши на соответствующем ему пункте в окне My Computer и выбрав в контекстном меню пункт Disconnect.

К сожалению, при активизации этого пункта меню Windows может не разорвать соединение с объектом. В этом случае придется завершить сеанс работы или (при использовании Windows 9x/Me) перезагрузить компьютер. Через некоторое время (от нескольких секунд до нескольких минут) начнется запись на компакт-диск, по завершении которой пользователю, инициировавшему данную задачу, будет передано почтовое сообщение. Получив сообщение, пользователь может извлечь диск из устройства и проверить качество записи на своей машине.

Определение разделяемого объекта и код сценария, приведенные в данном примере, далеки от совершенства. В сценарии не приняты меры, запрещающие одновременное обращение к разделяемому объекту двух пользователей. Поэтому, если пользователь предпримет попытку начать запись до того, как другой пользователь извлечет свой диск из устройства, неминуемо возникнет проблема. Кроме того, сценарий не оповещает пользователя об ошибках. Например, если образ диска слишком велик и не может быть записан на имеющийся носитель, пользователь узнает об этом лишь тогда, когда попытается прочесть записанные данные. Более совершенный сценарий должен сообщать о возникающих проблемах или устранять их самостоятельно. Наконец, следует заметить, что различные версии Samba по-разному интерпретируют переменную %P, поэтому описание разделяемого объекта необходимо изменять в зависимости от конкретных условий работы.

Использование псевдопринтера для записи компакт-дисков

Механизм псевдопринтеров позволяет записывать компакт-диски способом, более удобным для пользователей Windows 9x/Me, однако применение данного средства не так очевидно, как действия, основанные на использовании разделяемого объекта файлов. Данный подход заключается в следующем. Windows-клиент передает серверу Samba zip-архив, который содержит файлы, предназначенные для записи на компакт-диск. Разделяемый объект вызывает сценарий, который распаковывает архив, и записывает извлеченные из архива файлы на компакт-диск. Данный сценарий представляет собой разновидность сценария create-cd. Описание разделяемого объекта выглядит следующим образом:

[cd-print]

path = /var/spool/samba

printable = Yes

print command = /usr/local/bin/print-cd %H %s %U %P; rm %s

Как и в предыдущем примере, вам необходимо уточнить особенности обработки переменной %P в вашей версии Samba. Возможно, удобнее будет заменить эту переменную значением /var/spool/samba. Основную часть работы по записи компакт-диска выполняет сценарий, код которого представлен в листинге 7.2.

Листинг 7.2. Сценарий для записи компакт-диска с помощью параметра print command

#!/bin/sh

# $1 - Рабочий каталог пользователя, выполняющего запись на диск

# $2 - Имя zip-файла

# $3 - Имя пользователя, выполняющего запись на диск

# $4 - Путь к zip-файлу

mkdir -p $1/cdr/samba

cd $1/cdr/samba

unzip $4/$2

mkisofs -J -r -o $1/image.iso ./

cdrecord speed=2 dev=4,0 $1/image.iso

mail -s "CD-R creation finished" $3

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\SERVERCD-PRINT

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

COPY %1 \SERVERCD-PRINT

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

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

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

Правила эксплуатации компакт-дисков

Из книги Запись CD и DVD: профессиональный подход автора Бахур Виктор

Правила эксплуатации компакт-дисков Компакт-диск – это достаточно сложное устройство, требующее правильного обращения и ухода.• Не допускайте загрязнения рабочей поверхности. Держите диск за края, не трогайте рабочую поверхность руками. Для удаления случайно


Принцип работы приводов компакт-дисков

Из книги Сбои и ошибки ПК. Лечим компьютер сами. Начали! автора Ташков Петр

Принцип работы приводов компакт-дисков Схема работы устройства чтения – записи компакт-дисков достаточна проста.1. Лазерный диод излучает маломощный пучок света длиной 730–780 нм, который, проходя через направляющую призму и разделитель луча, попадает на отражающее


Параметры приводов компакт-дисков

Из книги Собираем компьютер своими руками автора Ватаманюк Александр Иванович

Параметры приводов компакт-дисков Рассмотрим параметры, влияющие на качество работы привода компакт-дисков.• Скоростная формула для CD. Изначально компакт-диски разрабатывались для записи и хранения музыки, и скорость считывания данных составляла 153 600 байт/с. С


Запись компакт-дисков

Из книги Тонкости реестра Windows Vista. Трюки и эффекты автора Клименко Роман Александрович

Запись компакт-дисков Если вы используете перезаписываемый компакт-диск, то перед записью его лучше очистить от ненужной информации. Для этого запустите программу Sound Forge 7.0 и выполните команду Tools ? Burn Track-at-Once Audio CD (Инструменты ? Запись аудиодиска в режиме «трек за раз»).


Неисправности привода компакт-дисков и DVD

Из книги Win2K FAQ (v. 6.0) автора Шашков Алексей

Неисправности привода компакт-дисков и DVD Какой компьютер может обойтись без мультимедиа? Разве что печатная машинка!Наличие привода компакт-дисков и DVD (рис. 1.11) – необходимый показатель того, что компьютер является современным и многофункциональным. Обойтись без


Приводы компакт-дисков и DVD

Из книги Nero 8 автора Кашеваров А

Приводы компакт-дисков и DVD Современный компьютер невозможно представить без CD/DVD-привода, поскольку практически вся информации (не учитывая Интернет) распространяется именно на оптических носителях.Объем первых компакт-дисков составлял 650 Мбайт. Они предназначались


Автозапуск компакт-дисков

Из книги Windows Vista автора Вавилов Сергей

Автозапуск компакт-дисков По умолчанию операционная система Windows Vista при обнаружении на вставленном компакт-диске файла autorun.inf задает пользователю вопрос, нужно ли этот файл выполнять. С помощью реестра можно полностью отключить возможности выполнения файла autorun.inf. Для


(3.11) Как отключить автозапуск у привода компакт-дисков?

Из книги Самоучитель работы на компьютере автора Колисниченко Денис Николаевич

(3.11) Как отключить автозапуск у привода компакт-дисков? Можно нажать левый Shift во время загрузки компакт-диска. А можно поправить значение в реестре:ключ: [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesCDRom]паpаметp: Autorunтип: REG_DWORDзначение: (0=отключено,


Режимы записи компакт-дисков

Из книги Сбои и ошибки ПК. Лечим компьютер сами автора Донцов Дмитрий

Режимы записи компакт-дисков CD и DVD могут быть записаны в трех режимах: TAO (track-at-once – «трек (дорожка) за раз»), SAO (session-at-once – «сессия (сеанс) за раз») и DAO (disk-at-once – «диск за раз»). Поясню, что это значит, – при создании дисков программа Nero предлагает выбрать один из этих режимов,


Чтение компакт-дисков и DVD

Из книги 500 лучших программ для Windows автора Уваров Сергей Сергеевич

Чтение компакт-дисков и DVD Просматривать информацию, записанную на компакт-диск, ничуть не сложнее, чем файлы, хранящиеся на жестком диске. С дисками вы будете сталкиваться постоянно, работая на компьютере, – любые программы, фильмы, игры и музыка продаются на CD или


5.3. Правила хранения компакт-дисков

Из книги Ubuntu 10. Краткое руководство пользователя автора Колисниченко Д. Н.

5.3. Правила хранения компакт-дисков Как минимум 10 лет при правильном хранении ваши диски «жить» будут. Нужно только придерживаться следующих правил:Нельзя прикасаться к записанной поверхности диска, постарайтесь браться руками только за центральное отверстие и


Неисправности привода компакт-дисков и DVD

Из книги Искусство программирования на языке сценариев командной оболочки автора Купер Мендель

Неисправности привода компакт-дисков и DVD Какой компьютер может обойтись без мультимедиа? Разве что печатная машинка!Наличие привода компакт-дисков (рис. 1.10) или DVD-привода – необходимый показатель того, что компьютер является современным и многофункциональным.


Запись компакт-дисков с фотографиями

Из книги Ноутбук [секреты эффективного использования] автора Пташинский Владимир

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


12.5. Чтение «битых» компакт-дисков

Из книги автора

12.5. Чтение «битых» компакт-дисков К сожалению, компакт-диски иногда портятся. Чаще всего причиной становится чисто механическое повреждение диска, например, царапина. Прочитать данные с такого диска уже нельзя, но если потеря некоторых данных некритична (например, это


Пример A-6. copy-cd: Копирование компакт-дисков с данными

Из книги автора

Пример A-6. copy-cd: Копирование компакт-дисков с данными #!/bin/bash# copy-cd.sh: copying a data CDCDROM=/dev/cdrom # устройство CD ROMOF=/home/bozo/projects/cdimage.iso # промежуточный файл# /xxxx/xxxxxxx/ измените для своей системы.BLOCKSIZE=2048SPEED=2 # Можно задать более высокую


Привод компакт-дисков и DVD

Из книги автора

Привод компакт-дисков и DVD Сегодня в большинство ноутбуков устанавливают универсальные приводы, которые могут работать и с компакт-дисками, и с DVD.Приводы незначительно отличаются друг от друга по себестоимости, поэтому установка в ноутбуки морально устаревших моделей