Контактная информация

По всем интересующим вас вопросам связывайтесь при помощи контактной информации приведенной на этой странице!

skype: metsof
email: accusser@gmail.com

В социальных сетях...

Форма обратной связи

Авторизация

Статьи об операционной системе Linux

Сайдбар

Резарвное копирование файлов Linux

17 апр. 2014

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

Рекомендую такую стратегию резервного копирования: все мои компьютеры связаны с центральным сервером, по крайней мере иногда такая связь существует. Раз в неделю я с помощью команды rsync синхронизирую каталоги со своими личными файлами с определенным каталогом на сервере. С самыми важными файлами, с которыми я работаю ежедневно, такое резервное копирование выполняется также ежедневно. Таким образом, все важные файлы находятся на двух разных компьютерах, а значит, на двух независимых друг от друга жестких дисках. Примерно раз в месяц целый сегмент диска сервера синхронизируется с внешним USB-носителем, который хранится отдельно от жестких дисков (в другом помещении). И вот за последние 15 лет мне пришлось попрощаться с несколькими винчестерами из-за неисправностей оборудования, но значительные объемы файлов не терялись никогда.

Сжатие и архивирование файлов



В Windows для сжатия одного или нескольких файлов обычно применяется архиватор WinZIP или совместимая с ним программа. В Linux также есть подобные пользовательские интерфейсы: например file-roller (Gnome) или ark (KDE). В этом разделе будут продемонстрированы некоторые альтернативы, позволяющие архивировать файлы с помощью специальных команд.

Инструменты для сжатия и архивирования файлов



gzip — Архивирует файл
gunzip — Извлекает файл из архива

bzip2 — Архивирует файл (сильное, но более медленное сжатие)

bunzip2 — Извлекает файл из архива bzip2

tar — Создает или извлекает файловый архив

zip — Создает совместимый с Windows ZIP-архив

unzip — Извлекает ZIP-архив

zipinfo — Указывает информацию по определенному ZIP-архиву

Команды gzip и gunzip



Команда gzip архивирует файлы, заданные в виде параметров, и переименовывает их по принципу имя .gz, где имя — имя файла. Команда gunzip выполняет противоположную операцию. Обе команды используют так называемый алгоритм Лемпеля-Зива (LZ77), особенно удобный при работе с текстовыми файлами (но непригоден для работы с аудио- и видеофайлами). Разумеется, архивация происходит без потери данных, то есть при извлечении из архива восстановленный файл имеет тот же вид, что и до архивации. На следующих примерах показана работа этих команд:

user$ ls -l filesystem.tex


… 178794 1. Aug 17:43 filesystem.tex

user$ gzip filesystem.tex

user$ ls -l filesystem.tex.gz

… 57937 1. Aug 17:43 filesystem.tex.gz

user$ gunzip filesystem.tex.gz

Команды bzip2 и bunzip2



Это команды, альтернативные gzip/gunzip. Достоинство данных команд заключается в более сильной архивации, но они немного медленнее работают. Файлы, заархивированные таким образом, имеют расширение .bz2.

user$ bzip2 filesystem.tex user$ ls -l filesystem.tex.bz2


… 47105 1. Aug 17:43 filesystem.tex.bz2 user$ bunzip2 filesystem.tex.bz2

Команда tar


www.modx.cc/manager/?a=resource/create&class_key=Article&parent=982&context_key=web&template=30
Команда tar обычно применяется в Linux для того, чтобы объединять несколько файлов в архиве, создаваемом, как правило, командами gzip или bzip2. Сначала tar предназначалась для записи файлов на стримерный накопитель и считывания информации с него. Поскольку такие устройства сегодня применяются уже достаточно редко, я опишу только то, как эта команда используется с файловыми архивами.

Следующая команда помещает все файлы из каталога buch в сжатый архивный файл buch.tgz. Коротко расскажу о буквенных названиях параметров: с означает

«создать» (create), то есть таким образом tar создает архиву означает zip, то есть архив должен создаваться с помощью gzip; f означает «файл» (file), то есть tar должна создать файл архива (а не записывать архив на кассету стримера). В дополнение к этому параметру указывается имя файла. Обычно такие файлы имеют расширение .tar.gz, или коротко .tgz.

user$ tar -czf meinarchiv.tgz buch/


Команда tar -tzf возвращает содержимое архива. Данные в архиве располагаются произвольно. В большинстве дистрибутивов less сконфигурирована так, что содержимое архива можно просмотреть, просто задав команду less имяЛдг.

user$ tar -tzf meinarchiv.tgz


linux8/

linux8/lanserver.tex linux8/security.tex~ linux8/buch.tex

Iinux8/u4.txt~

Команда tar -xzf распаковывает архив и извлекает содержащиеся в нем файлы:

user$ cd другойкаталог/ user$ tar -xzf meinarchiv.tgz


В следующем примере tar извлекает из архива только ТЕХ-файлы. Обратите внимание на апостроф рядом со схемой файла, предотвращающий мгновенную обработку таких файлов оболочкой.

user$ tar -xzf meinarchiv.tgz '*.tex'


Если вы хотите создать архив с помощью bzip2, а не с помощью gzip, измените параметр z на j.

Команда zip



В мире UNIX/Linux файлы TAR — это доминирующий формат для передачи файловых архивов. Однако если вы работает с пользователями Windows, то ZIP-архив — это оптимальный выбор. Следующая команда помещает все HTML-файлы, переданные в виде параметров, в архив myarchive.zip. user$ zip meinarchiv.zip *.html

Если вы хотите заархивировать содержимое целых каталогов, укажите параметр -r:

user$ zip -r meinarchiv.zip mywebsite/


Содержимое ZIP-файла можно просмотреть с помощью команды zipinfo: user$ zipinfo meinarchiv.zip

Archive: test.zip 143677915 bytes 1899 files

-rw-r--r-- 2.3 unx 78039 tx defN 10-Jul-06 11:27 linux8/lanserver.tex -rw-r--r-- 2.3 unx 115618 tx defN 7-Apr-05 15:58 linux8/security.tex~ -rw-r--r-- 2.3 unx 3899 tx defN 28-Jul-06 16:38 linux8/buch.tex -rw-r--r-- 2.3 unx 752 tx defN ll-Feb-04 12:06 Iinux87u4.txt-

Для извлечения архива используйте следующие команды:

user$ cd другой каталог/ user$ unzip meinarchiv.zip


Синхронизация каталогов


Команда rsync первоначально разрабатывалась для синхронизации сетевых каталогов. Специальные возможности использования этой команды при работе с сетями перечислены в подразделе «RSYNC». Здесь мы поговорим лишь о том, как синхронизировать два локальных жестких диска.

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

user$ rsync кaтaлoгl/*.jpg каталог2/


Чтобы синхронизировать целый каталог вместе со всеми его подкаталогами, используйте параметр -a, который является сокращенным вариантом целого ряда других параметров (-rlptgoD). Параметр вызывает рекурсивную обработку всех подкаталогов и гарантирует, что информация (владелец, принадлежность к определенной группе, время последнего изменения и т. д.) сохранится в максимально полном объеме. Если каталог2 не существует, то этот каталог создается.

user$ rsync -a каталог1/ каталог2/


По умолчанию rsync копирует или обновляет все новые или измененные файлы, но ничего не удаляет. Если вы хотите, чтобы файлы, удаленные из каталог1, также были удалены из каталог2, дополнительно укажите параметр — -delete. Само собой разумеется, что этот параметр опасен: если случайно удалить каталог, то именно он удалится при следующей операции резервного копирования и со второго жесткого диска! Однако в долгосрочной перспективе вам без — -delete не обойтись. Если этим параметром не пользоваться, со временем накопится масса уже ненужной информации.

Если вы хотите обеспечить надежную подачу данных о том, какие файлы были изменены и сколько файлов (с какой скоростью и куда именно) было перенесено, дополнительно укажите параметр — v.

Автоматизация работы rsync. Чтобы не вводить команду rsync многократно, лучше всего запаковать ее в небольшой сценарий командного процессора. Тогда вы гарантированно сможете избежать опечаток.

#!/bin/sh

mount /backup # Привязка резервного каталога NFS к файловой системе rsync -av --delete /folderl/* /backup/rechnerX/folderl/ rsync -av --delete /folder2/* /backup/rechnerX/folder2/

Резервное копирование будет еще удобнее и надежнее, если автоматизировать его запуск программой Cron-Job.

Инкрементное резервное копирование


Интересной альтернативой rsync является команда rdiff-backup. Ее важнейшее отличие от rsync заключается в том, что она сохраняет в резервном каталоге для измененных файлов и старые версии этих файлов. Для экономии места можно сохранять не копию измененного файла, а только внесенные изменения (которые также можно архивировать). Кроме того, rdiff-backup позволяет без особых усилий организовать инкрементное резервное копирование: из получаемых таким образом копий можно восстанавливать также более старые варианты файлов. В принципе функционально rdiff-backup аналогична Time Machine из Apple Mac OS X — отсутствует только симпатичный пользовательский интерфейс.

Выполнение резервного копирования



Проще всего применять rdiff-backup с двумя локальными каталогами. Если целевой каталог еще не существует, он создается.

root# rdiff-backup /home /home-backup


Команда rdiff-backup создает в каталоге для резервного копирования подкаталог rdiff-backup-data. В нем сохраняются различные статистические файлы и статусная информация. Кроме того, в каталоге increments содержатся старые версии тех файлов, которые были изменены или удалены. При этом сохраняются только изменения (.diff), которые дополнительно архивируются. В имя файла интегрируется дата создания последней версии. Таким образом, получаются сравнительно сложные имена файлов вида Hiw.2009-04-03T08:37:58+02:00.diff.gz.

Доступ к резервным копиям


Если вы хотите обратиться к резервной копии, то вам нужен каталог /home-backup, отражающий состояние каталога / home на момент последнего резервного копирования (за исключением дополнительного резервного каталога rdiff-backup-data — именно такой результат вы бы получили, если бы выполнили резервное копирование с помощью команды cp-a или rsync -a --delete). Таким образом, открыть последнюю резервную копию совсем не сложно. Конечно, резервную копию можно восстановить и с помощью rdiff-backup. Для этого применяется параметр -r и указание времени now. Следующая команда позволяет восстановить резервную копию во временном каталоге:

root# rdiff-backup -r now /home-backhup /tmp/home-aktuell


Если вы хотите обратиться к старой версии файла или к недавно удаленному файлу, дело обстоит сложнее: нужно по порядку восстановить все DIFF-файлы (начиная с самого нового), пока вы не получите ту (прошлой) версиюю, которая вам нужна.

Конечно, это необязательно делать вручную — для этой цели существует команда rdiff-backup. Следующая команда восстанавливает каталог /home в таком виде, в котором он был десять дней назад:

root# rdiff-backup -r 10D /home-backup/ /tmp/home-historisch

Момент резервного копирования на ваш выбор можно задавать или в абсолютном виде (например, 2009-12-31), или в относительном (в часах (h), днях (D), неделях (W) и т. д.). Обратите внимание, что при восстановлении старых файлов с возрастанием количества версий увеличивается нагрузка на процессор, соответственно, работа системы замедляется!

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

root# rdiff-backup -r 10D /home-backup/file file-historisch root# rdiff-backup -r 10D /home-backup/folder/ folder-historisch

Удаление всех резервных копий. Если вы регулярно пользуетесь командой rdiff-backup, то каталог с резервными копиями со временем серьезно разрастается. Чтобы удалить все резервные копии, созданные более четырех месяцев назад, сделайте так:

root# rdiff-backup --remove-older-than 4M --force /home-backup/

Вместо конкретного временного пункта вы также можете указать, сколько времени должны сохраняться заархивированные резервные версии. Следующая команда уменьшает количество резервных версий до трех (независимо от того, насколько давно они были созданы):

root# rdiff-backup --remove-older-than 3B --force /home-backup/


Сетевое резервирование


Во всех предыдущих примерах мы исходили из того, что исходный и конечный каталоги находятся в файловой системе локального компьютера. Однако команда rdiff-backup может обращаться через сеть и к удаленным каталогам. В отличие от случая работы с rsync, команда rdiff-backup должна быть установлена и на удаленном компьютере! Передача данных осуществляется через SSH. Специальной конфигурации rdiff-backup не требуется.
При указании внешних каталогов применяется практически такой же синтаксис, как при работе с rsync. Единственное отличие заключается в том, что после имени хоста необходимо поставить два двоеточия:

root# rdiff-backup user@firma-abc.de::/home /home-backup


Программа Duplicity



Если вам, в принципе, нравится идея команды rdiff-backup, но также требуется закодировать резервную копию и обеспечить закачку информации через SSH или

FTP на внешний сервер, обратите внимание на программу Duplicity, записанную на языке Python. Функционально она напоминает rdiff-backup, но создает только архивы в формате TAR. В настоящий момент программа проходит бета-тестирование и активно разрабатывается.

Пользовательские интерфейсы для резервного копирования



Компания Apple своей программой Time Machine доказала, что даже приложение для резервного копирования может вызвать восторг пользователя. Linux, к сожалению, не может составить Apple конкуренцию в данном отношении: хотя выбор команд и инструментов для резервного копирования и необозрим, пользователи персональных компьютеров все еще ждут появления гениального и простого инструмента. В Gnome и KDE программа резервного копирования по умолчанию вообще отсутствует. Это тем более поразительно, так как существует несколько исключительно интересных и простых в использовании приложений.

В настоящее время ведется активная разработка всех трех программ. Однако ситуация может быстро измениться: именно среди программ, предназначенных для резервного копирования, существует множество брошенных проектов, которые не обновляются годами. Старайтесь не пользоваться «островными» решениями и при необходимости своевременно меняйте свой инструмент для резервного копирования!

Grsync



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

Многие параметры, по сути, могут быть оставлены в таком виде, как они настроены по умолчанию. Однако о двух параметрах следует рассказать подробнее. О Флажок Удалить в целевом каталоге определяет, должна ли программа Grsync синхронизировать процессы удаления. Если после первого резервного копирования вы удалите файл в вашем домашнем каталоге, то этот файл при следующем прогоне будет удален и в резервном каталоге. Если необходимо защитить резервный каталог от нечаянного удаления, то этот флажок можно не устанавливать (такая настройка также сделана по умолчанию). Его необходимо установить

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

PyBackPack



Программа предназначена для того, чтобы сохранять резервную копию домашнего каталога на CD или DVD в любом каталоге (например, на внешнем диске) или на сервере, доступ к которому обеспечивается через SSH. Интерфейс этой программы существует только на английском языке, состоит из трех вкладок. Если вы хотите просто делать резервные копии вашего домашнего каталога и сохранять их на CD или DVD, выберите на вкладке Ноте вариант Go.

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

Ready.



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

DejaDup



Эта программа, как и PyBackPack, разработана для максимально простого создания резервной копии в каталоге на локальной машине или в сети. В качестве места для резервного копирования очень хорошо подходит сервер Amazon-S3. С помощью команды Правка ► Настройки можно указать, где следует сохранить каталог и на какие каталоги будет распространяться резервное копирование, а на какие — нет. Резервное копирование запускается нажатием кнопки Создание резервной копии.

Если установить флажок Регулярно создавать резервные копии, DejaDup на ваш выбор будет осуществлять копирование ежедневно, еженедельно, раз в две недели или раз в месяц. В любом случае резервное копирование осуществляется только тогда, когда вы вошли в систему. Запуск фоновой программы, выполняющей сохранение, инициируется вводом логина.

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

Кнопка Восстановить позволяет полностью восстановить резервную копию. При этом можно задать нужную версию резервной копии и указать, куда должны быть скопированы резервные файлы. Если вы хотите восстановить лишь один файл или каталог, щелкните на нем правой кнопкой мыши в менеджере Nautilus и выполните команду контекстного меню Восстановить старую версию.
В перспективе DejaDup должна стать стандартной программой для резервного копирования в Ubuntu. Работа программы основана на созданном на языке Python сценарии для резервного копирования Duplicity. Недостаток заключается в том, что файлы резервных копий создаются в очень специфическом формате, так что восстанавливать их можно только с помощью программы DejaDup или сценария Duplicity.
Читайте так же:
Поиск файла linux

Подпишитесь на рассылку! Никакого спама, только обновления!!!

Комментарии (0)


    Услуги по MODX Revolution

    Посмотреть все услуги

    Техническая оптимизация сайта

    Подробнее & Заказать

    Создание сайта на MODX Revolution

    Подробнее & Заказать

    Перенос сайта на MODX Revolution

    Подробнее & Заказать

    Продвижение сайта на MODX

    Подробнее & Заказать