В составе пакета Samba поставляется программа smbtar. Как нетрудно догадаться, этот инструмент сочетает в себе возможности утилиты tar и клиента SMB/CIFS На самом деле smbtar представляет собой сценарий оболочки, который вызывает программы tar и smbclient, используя предоставляемые ими возможности для создание резервных копий данных, которые содержатся на компьютерах под управлением Windows. Инструмент smbtar можно использовать как для создания резервной копии всего разделяемого объекта, так и для копирования отдельных файлов. Сценарий smbtar вызывается с помощью следующего выражения:
Обратившись к справочной системе, вы получите подробную информацию об использовании smbtar. Ниже описано назначение основных опций.
s клиент_резервного_копирования. Эта единственная обязательная опция задает имя клиента резервного копирования. В качестве ее значения указывается NetBIOS- имя компьютера. В зависимости от значения опции name resolve order в файле smb.conf, система также может обрабатывать DNS-имена узлов сети.
х имя_разделяемого объекта. Данная опция позволяет задать имя разделяемого объекта (это имя вводится на этапе 2 описанной выше процедуры). По умолчанию принимается имя backup.
u имя_пользователя. Если вы хотите установить соединение под именем, отличающемся от имени пользователя, под которым вы выполняете резервное копирование, вам необходимо указать данную опцию. Заметьте, что в Windows 9x/Me пользовательское имя не применяется, за исключением тех случаев, когда система входит в состав домена.
p пароль. Если для работы с разделяемым объектом необходим пароль, вы можете задать его с помощью данной опции. При этом возникает серьезная угроза безопас ности системы, так как значение пароля будет сохранено в списке предыстории, поддерживаемом оболочкой (в случае, если вы вводите команду smbtar вручную), кроме того, пароль отображается в перечне выполняемых процессов (соответству ющие данные доступны посредством утилиты ps). Если же вы запускаете smbtar из сценария, необходимо проследить за тем, чтобы код сценария мог просматривать только пользователь root.
d каталог. Если вы хотите работать лишь с одним каталогом, вы можете указать его имя с помощью данной опции. В случае, когда необходимо сохранить на резервном носителе весь разделяемый объект, опцию -d указывать не следует.
t устройство. Эта опция позволяет указать файл устройства, соответствующий накопителю на магнитной ленте, или задать имя файла, в котором будет сохранена резервная копия. По умолчанию в качестве значения данной опции используется значение переменной окружения $ТАРЕ, если же данная переменная не указана, принимается имя tar.out.r. По умолчанию smbtar используется для создания резервной копии. Если же указана опция -r, данная программа будет работать в режиме восстановления данных.
v. Данная опция включает режим вывода дополнительной информации. Если опция -v задана, smbtar отображает имена копируемых файлов.
В качестве примера рассмотрим команду, которая создает резервную копию объекта
CDRIVE на компьютере WORK. Эта команда имеет следующий вид:
При выполнении данной команды сначала выводится информация о состоянии системы, затем список файлов, а после этого — сведения о числе файлов и объеме сохраненных Данных в байтах. Форматы файлов, созданных с помощью smbtar и tar, совпадают, поэтому при необходимости вы можете просмотреть содержимое архива посредством утилиты tar.
Использование smbmount
Вместо того чтобы работать с инструментом smbtar, вы можете воспользоваться предоставляемой Linux возможностью монтировать разделяемые объекты SMB/CIFS. Для монтирования подобных объектов можно применять утилиту mount или smbmount. При использовании программы mount надо указать тип файловой системы smbfs, задать NetBIOS- имя компьютера под управлением Windows, имя разделяемого объекта и имя пользователя. Сформированная таким образом команда имеет следующий вид:
# mount -t smbfs //WORK/CDRIVE /mnt/backup -о\
username=fred,password=password
Эквивалентная ей команда smbmount выглядит так:
# smbmount //WORK/CDRIVE /mnt/backup -о\
username=fred,password=password
Реализации утилиты smbmount в пакетах 2.0.x Samba существенно отличаются одна от другой. В ранних версиях данной программы использовался другой синтаксис. Приведенный выше вызов корректен для программ smbmount, поставляемых в составе версий 2.0.5а-2.2.2 Samba.
Если вы не укажете пароль, то программы mount и smbmount запросят его. Поэтому, если вы хотите вызывать программу резервного копирования из командной строки, эти утилиты предпочтительнее smbtar. Кроме того, используя mount или smbmount, вы можете смонтировать несколько устройств и скопировать их содержимое с помощью одного вызова утилиты tar. Такой подход упрощает создание резервной копии, но замедляет восстановление содержимого одной системы, так как в этом случае необходимо сначала прочитать информацию, соответствующую другим системам.
После окончания копирования содержимого компьютера под управлением Windows необходимо разорвать соединение с клиентом резервного копирования с помощью команды umount или smbumount. Пример вызова umount приведен ниже.
# umount /mnt/backup
Для создания резервных копий содержимого системы Windows часто используются компьютеры под управлением Linux. Однако при этом необходимо учитывать особенности обработки имен файлов. Дело в том, что программы mount и smbmount интерпретируют имена файлов иначе, чем это происходит в системе Windows. Для того чтобы понять эти различия, необходимо рассмотреть правила хранения файлов в Windows. Файловая система FAT (File Allocation Table — таблица размещения файлов), используемая в Windows 9x/Me и поддерживаемая в системах Windows NT, 2000 и ХР, ориентирована на работу с файлами, имена которых содержат восемь символов, а расширение — три символа. Такие имена файлов называются именами 8.3. Для хранения длинных имен файлов в каталогах Windows предусмотрены дополнительные записи. Длинными считаются имена файлов, содержащие больше восьми символов имени и больше трех символов расширения, либо имена, составленные из символов, регистр которых должен быть сохранен. (Имена 8.3, в зависимости от используемых программ, могут отображаться символами верхнего регистра либо представляться как имя, начинающееся с прописной буквы, например File.txt. Существует также возможность указать, что имя 8.3 должно но представляться символами только верхнего или только нижнего регистра.) Проблема обработкой имен файлов в Linux возникает из-за того, что в данной системе не поддерживаются имена 8.3, а используются только длинные имена файлов.
В отличие от Windows, Linux интерпретирует имена 8.3, которые присутствуют в каталогах, смонтированных с помощью mount или smbmount, как имена, состоящие только из символов нижнего регистра (например, file.txt). Такие файлы восстанавливаются корректно, но если при создании имени 8.3 было указано, что оно должно включать только символы нижнего регистра, процедура восстановления данных может представить его как состоящее из символов верхнего регистра. Такая особенность обработки имен редко приводит к возникновению серьезных проблем, поскольку при интерпретации имен файлов Windows не учитывает регистр.
Программа smbtar интерпретирует имена 8.3 как полностью состоящие из символов верхнего регистра, поэтому при ее использовании может возникнуть следующая проблема. Предположим, что в системе Windows был создан файл, имя которого полностью состоит из символов верхнего регистра, считается длинным именем, но содержит не больше восьми, а в составе расширения — не больше трех знаков. Программа smbtar, выполняемая в среде
Linux, может интерпретировать такое имя как имя 8.3, в результате чего при восстановлении оно будет обработано некорректно, т. е. не будет указано, что имя является длинным и состоит из символов верхнего регистра. Данная проблема также не является серьезной, но может создавать неудобства для пользователей.
Существенные трудности возникают при создании имен 8.3, которые должны соответствовать длинным именам. В системе Windows эта задача решается автоматически; если в окне DOS, отображаемом в среде Windows, вы зададите команду DIR, вы увидите как короткие, так и длинные имена файлов.
Поскольку система Linux не имеет информации о том, какие имена являются короткими, при восстановлении данных она полагается на соответствующие средства Windows. Как правило, регистр символов и другие особенности коротких имен не имеют значения для системы, но в некоторых случаях в результате несоответствия имен могут возникать нежелательные последствия. Например, если в конфигурационном файле указано короткое имя файла и если в результате восстановления данных это имя подверглось изменениям, программа не найдет требуемый файл. Кроме того, в системном реестре Windows некоторые имена файлов хранятся в формате 8.3, поэтому в результате восстановления файлов часть записей может оказаться некорректной. Это приведет к ошибкам в работе и даже к разрушению системы. Чтобы уменьшить вероятность возникновения подобных проблем, следует придерживаться приведенных ниже правил.
· Используйте короткие имена каталогов. Применяя короткие имена каталогов вместо длинных, вы устраните ряд проблем. Например, многие программы в системе Windows размещаются в каталоге Program Files. Если вы будете использовать вместо этого каталог с именем APPS, уменьшится вероятность того, что при восстановлении данных имя будет восстановлено некорректно. Аналогичным образом следует выбирать подкаталоги для установки программ. Имена файлов, содержащих данные, не обязательно должны быть короткими, так как информация о таких файлах практически никогда не помещается в системный реестр.
· Используйте длинные имена в составе конфигурационных файлов. Если вам необходимо включить в конфигурационный файл имя каталога, задавайте длинное имя. Например, если вы хотите задать каталог в качестве значения переменной PATH в файле AUTOEXEC.BAT, используйте его полное имя. Этим вы достигнете того, что при внесении изменений в имена файлов 8.3 функционирование системы не изменится.
· Создавайте длинные имена файлов, различающиеся первыми шестью символами.
· При создании имени 8.3 Windows оставляет первые шесть символов
· неизменными, затем присоединяет к ним символ и порядковый номер, начинающийся с единицы. Например, имя longfilename.txt может быть преобразовано в имя 8.3 LONGFI~1.TXT. Если все длинные имена файлов в каталоге будут различаться первыми шестью символами, при преобразовании в формат 8.3 все они будут оканчиваться последовательностью ~1, в результате вероятность некорректного восстановления имени файла уменьшится.
Оканчивая разговор об обработке имен файлов, следует заметить следующее. Вероятность возникновения проблем при создании резервных копий Windows-файлов с использованием компьютера под управлением Linux невелика. Если же вы примете рекомендуемые меры предосторожности, она станет еще меньше. Однако полностью игнорировать ее нельзя, поэтому желательно создать в системе Windows вариант резервной копии, который можно было бы использовать для восстановления базовой конфигурации системы.
Файловая система NTFS (New Technology File System — новая технология файловой системы), используемая в Windows NT, 2000 и ХР, также поддерживает и имена 8.3, и длинные имена файлов. Однако вероятность возникновения проблем с преобразованием имен гораздо меньше, чем в тех системах, в которых используется FAT.
Разделяемые объекты резервного копирования
Один из способов создания резервных копий с применением Samba состоит в использовании разделяемых объектов резервного копирования. Разделяемый объект резервного
копирования предоставляет собой объект Samba, связанный с устройством резервного копирования. Существует несколько подходов к работе с данными объектами, и все они могут рассматриваться как резервное копирование, инициируемое клиентом.
Что такое сервер резервного копирования
Существуют два основных подхода к созданию разделяемых объектов резервного копирования.
Непосредственное копирование. Вы можете создать разделяемый объект, связанный с точкой монтирования устройства со сменными носителями (например, Zip или Jaz). После монтирования носителя клиент резервного копирования может обращаться к нему как к любому другому разделяемому объекту. Так, например, Вы можете записывать на этот носитель данные, запуская программу создания архивов и даже перетаскивая необходимые файлы с помощью мыши.
Опосредованное копирование. Для копирования на резервный носитель файлов передаваемых клиентом, можно создать разделяемый объект, использующий сценарии. Сценарий может непосредственно записывать полученные данные либо выполнять их обработку. Пример использования сценария для записи данных на компакт-диск рассматривался по ходу изучения Samba.
Возможности непосредственного копирования ограничены объемом сменных носителей. Лишь на жесткий диск можно записать всю информацию, содержащуюся на клиентской машине. Опосредованное копирование обеспечивает большую степень гибкости, однако полученные данные временно записываются на жесткий диск. Поэтому если вам необходимо сохранить большой объем информации, на диске сервера резервного копирования должно быть свободное пространство, достаточное для временного хранения данных, передаваемых клиентом.