Учебное пособие 800521
.pdfЧасто употребляемые модификаторы утилиты tar Таблица 10.2
Модификатор |
Сокращенный |
Описание |
|
||||
вариант |
|
||||||
|
|
|
|
|
|
||
|
|
|
|
||||
--absolute-paths |
P |
Сохраняет символ / в |
начале |
||||
пути к файлу |
|
|
|||||
|
|
|
|
||||
|
|
|
|
||||
|
|
Задает |
обработку архива с |
||||
--bzip2 |
I |
помощью bzip2. |
(В |
старых |
|||
версиях tar не |
|
|
|||||
|
|
|
|
||||
|
|
поддерживается) |
|
||||
|
|
|
|
|
|||
--directory каталог |
|
Перед |
обработкой |
данных |
|||
C |
делает |
указанный |
каталог |
||||
|
|
текущим |
|
|
|
||
|
|
|
|||||
exclude файл |
(отсутствует) |
Запрещает включать файл в |
|||||
архив |
|
|
|
|
|||
|
|
|
|||||
--exclude-from файл |
|
Запрещает включать в архив |
|||||
X |
файлы, |
указанные в данном |
|||||
|
|
файле |
|
|
|
|
|
|
|
|
|
||||
|
|
Выполняет |
архивирование, |
||||
|
|
используя в качестве архива |
|||||
--file [узел:]файл |
|
указанный |
|
файл |
на |
||
f |
указанном |
узле. (Узел сети |
|||||
|
|
указывается при выполнении |
|||||
|
|
резервного |
|
копирования, |
|||
|
|
инициируемого клиентом.) |
|||||
|
|
|
|
|
|||
--gzip или --ungzip |
z |
Задает |
обработку |
архива |
|||
программой gzip или ungzip |
|||||||
|
|
||||||
|
|
|
|
|
|
||
|
|
Создает |
|
или |
использует |
||
--listed- |
g |
файл, |
|
|
содержащий |
||
incremental=файл |
результаты |
инкрементного |
|||||
|
|||||||
|
|
копирования |
|
|
|||
|
|
|
|
|
|
|
131
Окончание табл. 10.2
--multi-volume |
M |
Задает обработку |
архива |
на |
||
нескольких лентах |
|
|
||||
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
Сохраняет |
|
|
или |
|
--one-file-system |
1 |
восстанавливает только одну |
||||
|
|
файловую систему |
|
|
||
|
|
|
|
|
|
|
|
|
Сохраняет |
|
информацию |
о |
|
--same-permissions |
p |
пользователях и |
о правах |
|||
|
|
доступа |
|
|
|
|
|
|
|
|
|
|
|
--tape-length N |
|
Определяет |
длину |
ленты |
в |
|
L |
килобайтах; |
используется |
||||
|
|
совместно с --multi-volume |
|
|||
|
|
|
|
|
||
--verbose |
v |
Выводит |
информацию |
об |
||
обработанных файлах |
|
|||||
|
|
|
||||
|
|
|
|
|
||
|
|
Сразу |
после |
записи |
||
--verify |
W |
сравнивает исходный файл с |
||||
|
|
файлом, записанным в архив |
||||
|
|
|
|
|
|
|
В качестве примера использования приведенных выше опций рассмотрим следующую ситуацию. Предположим, что к компьютеру через интерфейс SCSI подключен накопитель на магнитных лентах. Для доступа к этому устройству используется имя /dev/st0 или /dev/nst0. Для создания резервной копии содержимого каталога /home с сохранением прав доступа и с выводом имен архивируемых файлов надо задать следующую команду:
# tar --create --verbose --file /dev/st0 /home
Если указать сокращенные обозначения опций, приведенные в табл. 10.1 и 10.2, то данная команда примет вид:
# tar cvf /dev/st0 /home
132
Некоторые опции программы tar (а именно --one-file- system, --same-permissions, --listed-incremental и --verify)
заслуживают более подробного обсуждения. В состав файловой системы Linux могут входить виртуальные файловые системы (например, /proс) и сменные носители. Кроме того, не исключено, что вы захотите запретить резервное копирование файловых систем, находящихся на некоторых устройствах. При использовании опции --one-file- system копироваться будут только те разделы, которые вы непосредственно укажете. Вместо --one-file-system можно задать опцию --exclude или --exclude-from, которая позволяет непосредственно исключать из процесса резервного копирования некоторые каталоги, например /proc.
Опция --same-permissions важна |
при |
работе |
с |
системными файлами, поскольку |
в |
ряде случаев |
утилита tar теряет некоторые данные о правах доступа. Чаще всего это проявляется, когда конкретные права не
соответствуют |
значению umask. |
Опция --same- |
|
permissions бывает |
необходима |
при |
восстановлении |
сохраненных файлов. |
|
|
|
Если при вызове tar указана |
опция --listed-incremental, |
программа создает новый файл либо использует имеющийся с информацией о файлах, включенных в архив. При первом запуске tar с этой опцией создается файл для хранения сведений об архиве, и все указанные файлы помещаются в архив. При последующих вызовах утилиты tar с опцией -- listed-incrementalобрабатываются только те файлы, которые были созданы или модифицированы с момента последней операции резервного копирования. Другими словами, данная опция позволяет вместо полного резервного копирования осуществлять частичное, или инкрементное, копирование. Многие администраторы раз в неделю или раз в месяц выполняют полное копирование и ежедневно - частичное. Такой подход позволяет обеспечить сохранность данных минимальными усилиями. (Восстанавливая информацию с
133
резервной копии, созданной посредством инкрементного копирования, вы, возможно, обнаружите, что недавно удаленные файлы снова появились на диске. Дело в том, что при инкрементном копировании файлы, которые были удалены с момента последнего полного копирования, не помечаются как отсутствующие.) Выполняя резервное копирование в сетевом окружении, целесообразно в разные дни недели осуществлять полное копирование информации на разных компьютерах. Например, вы можете составить расписание и указать в нем, что в понедельник должно выполняться копирование содержимого machine1, во вторник
- machine2 и т.д.
Опция --verify предназначена для проверки того, насколько корректно выполнено копирование данных. В результате такой проверки время копирования существенно возрастает, но подобное замедление работы часто бывает оправдано, особенно в тех случаях, когда в накопителе отсутствует встроенная функция проверки. (В большинстве устройств среднего и высокого уровня поверка осуществляется на аппаратном уровне.) Если вы указываете при вызове tar опцию --verify или --diff, возможны ложные сообщения об ошибках. Дело в том, что в то время, когда выполняется резервное копирование, пользователи продолжают работать в системе, поэтому с момента копирования на резервный носитель до момента проверки файл может быть изменен. Наиболее часто модифицируются файлы протоколов, содержимое очереди на печать, файлы в каталоге /tmp и другие подобные данные. Если в результате проверки выявлено несоответствие содержимого часто изменяемых файлов, повода для беспокойства нет. Если же при проверке не совпали статические данные, например файлы в каталоге /usr это может означать, что копирование выполняется некорректно.
Многие современные накопители на магнитных лентах поддерживают встроенные функции сжатия, поэтому в
134
применении опции --bzip2 или --gzip обычно нет необходимости. Если же вы указываете данные опции при вызове tar, помните, что их использование может представлять угрозу для целостности резервной копии. Опции --bzip2 и --gzip осуществляют сжатие не отдельных файлов, а всего архива, поэтому если в процессе сжатия возникнет ошибка, данные, содержащиеся в архиве, будут утеряны. Сжатие, реализованное на аппаратном уровне, обеспечивает определенную устойчивость к ошибкам подобного рода. В случае сбоя искажаются один-два файла, а остальные данные в архиве можно использовать. Некоторые программы резервного копирования сжимают данные таким же способом, повышая тем самым надежность всей системы.
Например, |
в |
коммерческом |
продукте |
BRU |
||
(http://www.tolisgroup.com) используется |
пофайловое |
сжатие |
||||
информации. |
|
|
|
|
|
|
10.3. |
Тестирование |
средств |
резервного |
копирования на локальном компьютере
Устанавливая сервер резервного копирования, целесообразно проверить, насколько хорошо он справляется с задачей копирования локальной информации, и лишь затем использовать его для работы в сети. Копировать данные, расположенные на локальном компьютере, намного проще, чем выполнять те же действия при взаимодействии по сети, поэтому, для того, чтобы разрешить проблемы, возникающие при резервном копировании в сети, желательно убедиться, что на локальной машине те же самые операции выполняются нормально. Нельзя также забывать о том, что содержимое сервера резервного копирования, как и любого другого компьютера, также необходимо записывать на резервный носитель. Если вы не сделаете этого, то при выходе сервера из строя вам не удастся быстро восстановить его работоспособность, в результате чего вы не сможете
135
выполнять резервное копирование данных, содержащихся на других компьютерах.
В качестве простейшей проверки можно скопировать данные с помощью одной из команд, рассмотренных в предыдущем разделе. Чтобы сделать это, необходимо выяснить, к какому устройству следует обращаться. Для накопителей среднего и высокого уровня чаще всего
используются |
следующие |
четыре |
имени: /dev/st0, /dev/nst0, /dev/ht0 и /dev/nht0. |
Первые два |
имени применяются для обозначения устройств SCSI, а остальные два соответствуют устройствам EIDE/ATAPI.
Имена файлов, имена |
которых |
начинаются с буквы n, |
представляют устройства |
без |
перемотки (nonrewinding |
device). По окончании действий с таким устройством лента остается в той позиции, в которой были записаны последние данные, в результате вы можете размещать несколько копий на одной ленте. Если в начале имени файла буква n отсутствует, это устройство считается устройством с перемоткой (rewinding device). В этом случае по окончании операции записи лента автоматически перематывается. Заметьте, что наличие или отсутствие перемотки является характеристикой не устройства, а представляющего его файла. Каждый накопитель, в зависимости от используемого драйвера, может рассматриваться либо как устройство без перемотки, либо как устройство с перемоткой. Если к компьютеру подключено несколько накопителей на ленте, имя файла, представляющего второе устройство, будет заканчиваться следующему устройству будет соответствовать
2 и т.д.
Существуют накопители, которым соответствуют файлы устройств с другими именами. Например, раньше использовались накопители, подключаемые через порт, предназначенный для работы с гибкими дисками. Работа с
ними |
осуществлялась |
посредством |
файлов /dev/qft0 и /dev/nqft0. Эти накопители |
отличаются |
136
малой емкостью носителей и низким быстродействием и не отвечают современным требованиям, предъявляемым к устройствам резервного копирования. Иногда устройства подключаются через специализированный интерфейс. Драйверы для работы с ними должны быть установлены при настройке Linux.
Если при выполнении копирования данных с локального компьютера у вас возникают проблемы, проверьте используемые аппаратные средства и драйверы устройств. Для работы с устройством SCSI необходимы как базовые средства поддержки SCSI, так и средства для взаимодействия с накопителем SCSI. Соответственно при использовании устройств EIDE/ATAPI необходимо обеспечить поддержку как EIDE, так и накопителя EIDE/ATAPI. При тестировании следует проверить не только создание резервных копий, но и восстановление данных. Целесообразно сначала испробовать сервер резервного копирования на небольшом каталоге, а потом переходить к работе с данными значительного объема. Чтобы убедиться, что информация восстановлена корректно, надо использовать режим верификации.
Если необходимо хранить несколько архивов на одной ленте, вам может пригодиться в работе утилита mt. Эта программа позволяет управлять накопителем на магнитных лентах, задавать различные режимы работы, например, включать встроенные средства сжатия, и выполнять другие функции.
На заметку
В справочных руководствах по mt и tar резервные копии называются файлами. Магнитную ленту можно сравнить с жестким диском без файловой системы. Архивы, созданные с помощью программы tar, располагаются на ленте последовательно один за другим.
Используя tar и mt, можно разместить на одной ленте несколько резервных копий. Утилита mt вызывается следующим образом:
137
mt [-f устройство] операция [счетчик] [параметры]
Под операцией подразумевается одна из следующих команд: fsf (forward space files - переход к следующему файлу), bsf(backward space files - переход к предыдущему файлу), rewind (перемотка ленты) и datcompression (установка режима сжатия; параметр 0 запрещает, а параметр 1 разрешает сжатие). Например, в результате приведенной ниже последовательности команд создаются две резервные копии и осуществляется их верификация.
#tar cvplf /dev/nst0 testdir-1/
#tar cvplf /dev/nst0 testdir-2/
#mt -f /dev/nst0 rewind
#tar df /dev/nst0 testdir-1/
#mt -f /dev/nst0 fsf 1
#tar df /dev/nst0 testdir-2/
Большинство из этих команд предполагает выполнение некоторых действий с лентой. Первые два вызова утилиты tarсопровождаются отображением имен копируемых файлов, а в результате последующих двух вызовов выводятся имена файлов, в которых обнаружено расхождение между исходными данными и данными, записанными на ленту. Второй вызов утилиты mt нужен при чтении архива. При создании резервных копий в этой команде нет необходимости.
rsync (Remote Synchronization) — программа для UNIX-
подобных систем, которая выполняет синхронизацию файлов и каталогов в двух местах с минимизированием трафика, используя кодирование данных при необходимости. Важным отличием rsync от многих других программ/протоколов является то, что зеркалирование осуществляется одним потоком в каждом направлении (а не по одному или несколько потоков на каждый файл). rsync может копировать или отображать содержимое каталога и копировать файлы, опционально используя сжатие и рекурсию.
138
rsyncd — демон, |
реализующий протокол rsync. По |
|||
умолчанию использует TCP-порт 873. |
|
|
||
Выпущен |
под |
лицензией GNU |
GPL, |
rsync |
является свободным программным обеспечением. |
Утилита |
rsync использует алгоритм, разработанный австралийским программистом Эндрю Триджеллом, для эффективной передачи структур (например, файлов) по коммуникационным соединениям в том случае, когда принимающий компьютер уже имеет отличающуюся версию этой структуры.
Принимающий компьютер разделяет свою копию файла на неперекрывающиеся куски фиксированного размера S, и вычисляет контрольную сумму для каждого куска: MD4-хеш и более слабый кольцевой хэш, и отправляет их серверу, с которым синхронизируется.
Сервер, с которым синхронизируются, вычисляет контрольные суммы для каждого кусочка размера S в своей версии файла, в том числе перекрывающиеся куски. Вычисления производятся эффективно ввиду особого
свойства |
кольцевого |
хэша: если |
кольцевой |
хэш |
байт |
|||
от n до n |
+ S |
− |
1 равняется R, |
то |
кольцевой |
хэш |
байт |
|
от n + |
1 до n |
+ |
S может быть |
посчитан исходя |
из R, |
|||
байта n и байта n |
+ |
S без необходимости учитывать байты, |
лежащие внутри этого интервала. Таким образом, если уже подсчитан кольцевой хэш байт 1—25, то для подсчета кольцевого хэша байт 2—26 используется предыдущее значение и байты 1 и 26.
CSUNC2
Утилита csync2 также служит для синхронизации данных между серверами в кластерах.
Ключевые особенности по сравнению с аналогами:
●Высокая скорость работы.
●Низкое потребление ресурсов (CPU, дисковые операции). Два этих фактора позволяют запускать процесс синхронизации максимально часто, поэтому данные на
139
серверах становятся идентичными практически в "реальном времени".
●Простота настройки для обмена данными между любым количеством серверов.
●Возможность синхронизации удаления файлов.
●Защищенный обмен данными между хостами (SSL). Подробная документация по использованию и
конфигурированию csync2 доступна на официальном сайте разработчика: http://oss.linbit.com/csync2/
FTP ("File Transfer Protocol" - протокол передачи файлов) - это популярный способ передачи файлов между двумя удаленными системами.
SFTP ("SSH File Transfer Protocol" или "Secure File Transfer Protocol") - это отдельный протокол с SSH, который работает аналогичным образом, но с использованием защищенного соединения. Его преимуществом является способность использовать защищенное соединение для передачи файлов и навигации по файловой системе на обеих системах - локальной и удаленной.
Почти во всех случаях, SFTP предпочтительнее FTP, изза его встроенной поддержки шифрования. FTP - небезопасный протокол, который следует использовать лишь в ограниченных случаях или в сети, которой Вы доверяете.
Хотя SFTP встроен во многие приложения с графическим интерфейсом пользователя, в этом руководстве мы покажем, как использовать его с помощью интерактивного интерфейса командной строки.
Как установить соединение через SFTP
По умолчанию, SFTP использует протокол SSH для авторизации и установки безопасного соединения. По этой причине в SFTP доступны те же методы авторизации, которые существуют в SSH.
Хотя пароли просты в использовании и используются по умолчанию, мы рекомендуем создать SSH ключи и передать
140