• Опосредованное копирование. Для копирования на резервный носитель файлов, передаваемых клиентом, можно создать разделяемый объект, использующий сценарии. Сценарий может непосредственно записывать полученные данные либо выполнять их обработку. Пример использования сценария для записи данных на компакт- диск рассматривался в главе 7.
Возможности непосредственного копирования ограничены объемом сменных носителей. Лишь на жесткий диск можно записать всю информацию, содержащуюся на клиентской машине. Опосредованное копирование обеспечивает большую степень гибкости, однако полученные данные временно записываются на жесткий диск. Поэтому если вам необходимо сохранить большой объем информации, на диске сервера резервного копирования должно быть свободное пространство, достаточное для временного хранения данных, передаваемых клиентом.
Создание разделяемых объектов резервного копирования
Разделяемые объекты резервного копирования создаются так же, как и другие типы разделяемых объектов Samba. Различие состоит лишь в том, что вы, вероятнее всего, захотите использовать сценарии для автоматического монтирования устройства при первом обращении к нему и размонтирования его по завершении процедуры создания резервной копии. Кроме того, в определении объекта резервного копирования обычно присутствует параметр max connections
, ограничивающий число пользователей, которые имеют возможность одновременно работать с данным объектом. Ниже приведено определение объекта резервного копирования, который позволяет удаленным пользователям записывать резервные копии данных на устройство Zip, смонтированное в позиции файловой системы /mnt/zip
.
[zip]
comment = Zip Backups
path = /mnt/zip
read only = No
max connections = 1
preexec = /bin/mount /mnt/zip
postexec = /bin/umount /mnt/zip
На заметку
Поскольку многие клиенты SMB/CIFS, в том числе средства, реализованные в системе Windows, не размонтируют разделяемый объект, вам, возможно, придется использовать глобальный параметр deadtime
, который указывает на то, что после определенного периода бездействия соединение должно быть разорвано. Для устройства резервного копирования желательно задать параметр deadtime = 5
. Значение этого параметра сообщает, что соединение будет разорвано через пять минут после прекращения активности.
Разделяемые объекты резервного копирования, подобные приведенному выше, применяются для копирования ограниченного объема данных. Такие объекты удобно использовать в небольших сетях для предоставления пользователям доступа к Zip и другим подобным устройствам.
На сменных носителях может использоваться любая файловая система, поддерживаемая Linux. Однако, если эти носители должны читаться в других системах, вам, возможно, придется отказаться от применения некоторых форматов. Например, если пользователям необходимо читать данные, записанные на сменном диске в системе Windows, очевидно, что на нем должна быть сформирована файловая система FAT. Если же диски будут устанавливаться только на устройствах, подключенных к компьютеру под управлением Linux, то на нем может присутствовать FAT, ext2fs или любая другая файловая система, с которой может работать Linux.
Совместное использование некоторых носителей обеспечить достаточно сложно. Для работы с ними необходимо создать разделяемый объект, который предпринимал бы специальные меры по записи данных на носитель. В главе 7 были приведены два примера разделяемых объектов, которые записывали информацию на компакт-диск. Модифицированный вариант разделяемого объекта, описанного в главе 7, представлен ниже.
[backup]
path = /var/spool/samba
printable = Yes
print command = /usr/local/bin/samba-backup %H %s %U \
/var/spool/samba; rm %s
Данный объект определяет псевдопринтер, который получает от клиента резервного копирования zip-файлы. Для извлечения содержимого zip-файла и копирования его на ленту с помощью tar этот объект использует сценарий /usr/local/bin/samba-backup, код которого приведен в листинге 17.1. В результате получается копия данных на ленте, аналогичная той, которая создается с помощью программы smbtar
. Модифицировав сценарий или изменив параметр print command
, вы можете организовать непосредственную запись zip-файла на ленту. Это позволит предотвратить потерю признаков скрытых и системных файлов при извлечении содержимого zip-файла в системе Linux.
Читать дальше