Программы для резервного копирования linux. Как сделать резервную копию всей вашей системы Linux с помощью Rsync. Резервная копия — это не только данные

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

Существует множество подходов к созданию резервных копий в Linux. Они варьируются от простых методов, основанных на выполнении сценариев, до использования сложных коммерческих продуктов.

Вопрос, что именно вам копировать и каким способом решать непосредсвенно вам в зависимости от причины и целей.

Так как основная идея в концепции Linux - "все есть файл", то процесс копирования и резервирования фактически представляет собой архивирование и разархивирование файлов.

Вот некоторые каталоги, которые имеет смысл копировать:

  • /etc
    Содержит все ваши ключевые конфигурационные файлы. В их число входят сетевые настройки, имя системы, правила брандмауэра, пользователи, группы и другие системные элементы.
  • /var
    Содержит информацию, используемую вашими системными демонами (службами), в том числе настройки DNS, DHCP leases, файлы почтового буфера, файлы HTTP сервера, конфигурации db2 и другие.
  • /home
    Содержит домашние каталоги по умолчанию для всех ваших пользователей. Хранит данные о персональных настройках, загруженных файлах и другую ценную для ваших пользователей информацию.
  • /root
    Домашний каталог привилегированного пользователя root.
  • /opt
    Каталог, для несистемного программного обеспечения. Сюда устанавливается программное обеспечение IBM. , JDKs и другое программное обеспечение по умолчанию так же устанавливается в этот каталог

Ниже приведены каталоги, для которых не надо выполнять резервное копирование.

  • /proc
    Никогда не выполняйте резервное копирование для этого каталога. В нем лежат не реальные файлы, а лишь виртуальный образ работающего ядра и среды. Он содержит такие файлы, как /proc/kcore -- виртуальный образ всей используемой памяти. Копирование этого каталога -- лишь пустая трата ресурсов.
  • /dev
    Содержит файловое представление ваших аппаратных устройств. Вы можете выполнить резервное копирование каталога /dev, если планируете начинать восстановление с пустой системы. Однако, если вы планируете восстановление с уже инсталлированным Linux, то нет необходимости копирования /dev.

Другие директории содержат системные файлы и установленные программные пакеты. В случае сервера большая часть этой информации остается неизменной. Большинство изменений происходит в каталогах /etc и /home. Но для полноты вы можете скопировать и их.

Средства резервного копирования

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

tar -- это классическая команда Unix, которая была перенесена в Linux. tar -- это аббревиатура tape archive, изначально эта команда была предназначена для архивирования файлов на магнитную ленту. Если вы загружали какой-нибудь Linux код, то, скорее всего, вы уже сталкивались с tar файлами. Это файловая команда, которая последовательно компонует файлы в непрерывную цепь.

Благодаря тому, что команда tar может архивировать целые деревья каталогов, она особенно хорошо подходит для создания резервных копий. Восстановление можно выполнять для архивов целиком, либо для отдельных файлов и каталогов. Резервные копии могут размещаться на файловых устройствах или на магнитной ленте. При восстановлении файлы могут быть перенаправлены и размещены в каталоге (или системе), отличном от того, с которого были сохранены. Команда tar не зависит от файловой системы. Она может использоваться в файловых системах ext2, ext3, jfs, Reiser и т.д.

Команда tar в использовании очень похожа на файловую служебную программу, такую как PKZip. Вы указываете ей исходный объект, который может быть файлом или устройством и затем перечисляете файлы, которые хотите запаковать. По ходу дела вы можете сжать архив, используя стандартные типы сжатия, или использовать для этих целей внешнюю программу сжатия, на ваш выбор. Используйте tar -j, чтобы сжимать или извлекать файлы из архива при помощи утилиты bzip2, или tar -j, чтобы сжимать или извлекать файлы из архива при помощи утилиты gzip.

Для того чтобы используя tar создать на ленточном SCSI-устройстве резервную копию всей системы, кроме каталога /proc, введите:

tar -cpf /dev/st0 / --exclude=/proc

В приведенном выше примере, ключ -c указывает на то, что создается архив. Ключ -p нужен для того, чтобы сохранить права доступа для файлов, что является необходимым условием для хорошего резервного копирования. Ключ -f указывает на имя файла для архива. В данном случае мы используем накопитель на магнитной ленте /dev/st0. Символ / задает, что именно мы хотим копировать. Поскольку в нашем случае это вся файловая система, то указан корневой каталог. При ссылке на каталог (в конце которого стоит символ /) tar автоматически рекурсивно обходит все подкаталоги. И, наконец, мы исключаем каталог /proc, поскольку он не содержит ничего ценного для нас. Если резервная копия не умещается на одной магнитной ленте, то мы добавим ключ -M (здесь не показан) -- указание на многотомный архив.

Чтобы восстановить файл или файлы, команда tar используется с ключом extract (-x):

tar -xpf /dev/st0 -C /

Ключ -f снова ссылается на наш файл, а -p указывает на то, что мы хотим восстановить заархивированные данные, сохранив права доступа. Ключ -x указывает на восстановление из архива. Ключ -C / указывает на то, что восстановление должно производится в корневой каталог. Команда tar по умолчанию восстанавливает архив в тот каталог, из которого была запущена. Ключ -C запрещает восстановление в текущий каталог.

Две другие команды tar, которые вы, скорее всего, будете часто использовать -- это ключи -t и -d. Ключ -t выводит содержимое архива. Ключ -d сравнивает содержимое архива с текущими файлами в системе.

Для облегчения работы и редактирования вы можете записать файлы и каталоги, которые вы хотите архивировать, в текстовый файл, на который можно сослаться при помощи ключа -T. Их можно комбинировать с другими каталогами, указанными в командной строке. В следующем примере производится резервное копирование всех файлов и каталогов, включенных в файл MyFiles, каталога /root, и всех файлов с расширением iso из каталога /tmp.

tar -cpf /dev/st0 -T MyFiles /root /tmp/*.iso

Список файлов представляет собой простой текстовый файл, содержащий файлы и каталоги в виде списка. Вот пример такого файла:

/etc
/var
/home
/usr/local
/opt

Обратите внимание, что команда tar -T (или files-from) не воспринимает шаблон. Имена файлов должны быть указаны точно. В примере выше продемонстрирован способ сослаться на файлы отдельно. Вы также можете выполнить скрипт, который проведет поиск в системе и создаст список. Вот пример такого скрипта:

#!/bin/sh
cat MyFiles > TempList
find /usr/share -iname *.png >> TempList
find /tmp -iname *.iso >> TempList
tar -cpzMf /dev/st0 -T TempList

Скрипт, приведенный выше, копирует весь существующий список файлов из MyFiles в TempList. Затем он выполняет две команды find для поиска в файловой системе файлов, удовлетворяющих определенному условию, и добавляет их в TempList. Первая команда поиска ищет в каталоге /usr/share все файлы, заканчивающиеся на.png. Вторая команда поиска ищет в каталоге /tmp все файлы, заканчивающиеся на.iso. После создания списка запускается команда tar, которая создаст новый архив (create) на файловом устройстве (file device) /dev/st0 (первый SCSI-носитель на магнитной ленте), который будет сжат в формате gzip с сохранением всех прав доступа для файлов (permissions). Архив будет разбит на несколько томов (Multiple volumes). Имена файлов, которые должны быть заархивированы будут взяты (Taken) из файла TempList.

Команды dump и restore

Команда dump выполняет практически те же функции, что и tar . Однако она скорее предназначена для работы с файловыми системами, а не отдельными файлами. Цитируя из руководства к dump : "dump проверят файлы файловой системы ext2 и решает, какие файлы нуждаются в резервном копировании. Эти файлы копируются для сохранности на указанный диск, магнитную ленту или другой носитель данных. Дамп, размер которого больше, чем размер носителя на выходе, разбивается на несколько томов. На большинстве носителей этот размер определяется путем записи до тех пор, пока не будет получен сигнал о переполнении носителя."

Программу dump дополняет программа restore , используемая для восстановления сохраненных файлов из дампа.

Команда restore выполняет функцию, обратную команде dump. После восстановления всей файловой системы поверх можно восстанавливать инкрементальные резервные копии. Из полной или инкрементальной копии могут быть восстановлены и одиночные файлы и директории с подкаталогами.

Как dump так и restore можно запустить по сети, то есть вы можете выполнять архивацию или восстановление с удаленных устройств. Команды dump и restore работают с ленточными и файловыми устройствами и обладают большим набором опций. Однако эти команды ограничены только файловыми системами ext2 и ext3. Если вы работаете с JFS, Reiser или другими файловыми системами, вам необходима другая утилита, например tar.

Резервное копирование с использованием dump

С помощью команды dump резервную копию сделать довольно просто. Приведенная ниже команда выполняет полное резервное копирование Linux с файловыми системами ext2 и ext3 на SCSI ленточное устройство:

dump 0f /dev/nst0 /boot
dump 0f /dev/nst0 /

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

Интересной особенностью команды dump является встроенная функциональная возможность создания инкрементальной резервной копии. В примере выше 0 указывает на уровень 0 или на базовый уровень резервной копии. Такое копирование всей системы вам следует выполнять периодически для охвата системы целиком. Для изменения уровня последующих резервных копий вы можете использовать другие номера (1-9) вместо 0. При резервном копировании уровня 1 будут сохранены все файлы, которые были изменены с момента создания копии уровня 0. При копировании уровня 2 будет сохранено все, что было изменено с момента создания копии уровня 1 и так далее. То же самое можно выполнить с помощью команды tar, используя скрипт, но для этого необходимо, чтобы человек, пишущий скрипт, имел механизм для определения, когда было проведено последнее копирование. Команда dump обладает собственным алгоритмом, обновляющим update-файл (/etc/dumpupdates) при проведении резервного копирования. Update-файл сбрасывается в исходное состояние всякий раз, когда происходит резервное копирование нулевого уровня. При копировании последующих уровней ставятся метки вплоть до того момента, когда произойдет следующее копирование нулевого уровня. Если вы собираетесь проводить копирование на ленточные устройства, dump автоматически произведет деление на тома

Для восстановления информации, сохраненной с помощью команды dump, используется команда restore. По аналогии с tar, команда restore может вывести содержимое архива (-t) и сравнить архивы с текущими файлами (-C). Будьте внимательны с командой restore при восстановлении данных. Существует два различных подхода и для того, чтобы получить предсказуемые результаты, вы должны выбрать верный.

Воссоздание (-r)

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

Вот пример полного воссоздания из дампа, выполненного в примере выше.

restore -rf /dev/nst0

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

Извлечение (-x)

Если вам надо работать с отдельными файлами, а не с целыми файловыми системами, используйте для извлечения ключ -x. Например, чтобы извлечь один каталог /etc из архива на ленточном накопителе, выполните следующую команду:

restore -xf /dev/nst0 /etc

Интерактивное восстановление (-i)

Еще одна возможность, заложенная в команду restore, -- это диалоговый режим. Выполнив команду:

restore -if /dev/nst0

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

dump или tar?

Обе команды, dump и tar, имеют своих почитателей. У каждой есть свои преимущества и недостатки. Если вы используете файловые системы, отличные от ext2 или ext3, то dump вам не подходит. Однако, в противном случае, команда dump позволит сократить до минимума использование скриптов и, кроме того, облегчит процесс восстановления благодаря наличию интерактивного режима.

Лично я предпочитаю использовать команду tar, поскольку я люблю писать скрипты, потому что они обеспечивают высокий уровень контроля. Кроме того, существуют многоплатформенные средства для работы с файлами.tar.

Другие утилиты

В принципе, любую программу, которая может копировать файлы, можно использовать для выполнения того или иного вида резервного копирования в Linux. Некоторые люди используют для создания резервных копий программы cpio и dd. cpio -- утилита архивации, похожая на tar. Она гораздо менее распространена. dd -- это утилита копирования файловой системы, создающая бинарные копии файловой системы. Утилиту dd можно использовать для создания образа жесткого диска в духе таких программных продуктов, как Symantec Ghost. Однако dd – это не файловая утилита, поэтому вы можете восстанавливать данные только на идентичные разделы жесткого диска.

Коммерческие программные продукты для резервного копирования

Существует несколько коммерческих программ резервного копирования, предназначенных для Linux. Коммерческие продукты обычно предоставляют удобный интерфейс и систему отчетности, в то время как, используя утилиты dump и tar, вам придется обойтись без этих удобств. Коммерческие программы предлагают широкий выбор функций. Наибольшая польза, которую могут принести коммерческие пакеты, – это предложить вам уже готовую для использования встроенную стратегию выполнения резервного копирования. Разработчики таких программ в свое время уже прошли через все те ошибки, что вам еще только предстоит сделать, и плата за их опыт невелика, по сравнению с потерей важных данных.

Оставьте свой комментарий!

Приветствую Всех!

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

Для резервного копирования не нужно ставить дополнительный софт, в системе уже есть встроенный инструмент. Для того чтобы им воспользоваться открываем «Параметры системы».

Кликнув на инструмент «Резервные копии» у нас откроется новое окно.

По умолчанию открывается главная вкладка «Обзор», но так как мы еще не создавали резервные копии, перейдем к настройкам следующих пунктов.

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

После выбора одной или нескольких нужных нам директории нажимаем кнопку «Добавить».

После этого мы увидим выбранные директории в нашем списке. Так как я выбрал устройства «Компьютер», то у меня добавилась корневая директория. И будет сделана копия всех папок. В этом случае, домашнюю папку можно удалить из списка, выделив ее и нажав на иконку —

Далее настроим папки, которые будут исключены из резервного копировани. Переходим в пункт «Исключенные папки». И по аналогии добавляем директории или папки, которые нам не стоит вносить в резервную копию и необходимо исключить из списка.

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

В пункте «Планирование» мы настраиваем, сколько времени хранить старые резервные копии и через какой промежуток времени их создавать.

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

После того, как все настроики произведены, можно создать первую резервную копию. Переходим в пунк «Обзор» и нажимаем на кнопку «Создать резервную копию».

На первом шаге резервного копирования будет предложено установить пароль на резервную копию.
Добавляем пароль и нажимаем кнопку продолжить.

Начнется процесс создания резервной копии. Он может продолжаться довольно длительное время. Это зависит от объемы выбранных вами папок.

После окончания процесса закрываем окно.

Проверим нашу директорию, куда сохранилась резервная копия. В ней мы видим файлы формата gpg. У меня таких файлов шестьдесять один.

Теперь в случае каких либо проблем в системе, мы всегда сможем восстановить ее работу в прежний стабильный режим.

Мы рассмотрели как делать резервные копии в linux Ubuntu. И если остались непонятные вопросы по данной теме и есть предложения, то прошу их писать в комментариях. Всем пока!

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

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

В этой статье мы рассмотрим лучшие программы резервного копирования Linux, которые можно использовать как на серверах, так и на персональных компьютерах.

Это очень популярная среди опытных пользователей Linux утилита командной строки для резервного копирования linux. У нее очень много функций, включая инкрементное резервное копирование, обновление дерева каталогов и файловой системы, сохранение прав доступа для файлов, владельца, ссылок, а также работа с резервными копиями как на локальной машине, так и на удаленной.

В утилиты также есть графический интерфейс под названием Grsync. Но главное преимущество в том, что все работы по резервному копированию могут быть автоматизированы с помощью скриптов и cron.

Это бесплатный инструмент с открытым исходным кодом, который можно запускать как в Windows, так и в Linux. У программы простой и интуитивно понятный интерфейс, поэтому пользователи могут очень просто настроить и делать резервные копии.

Основные преимущества:

  • Простой в использовании интерфейс
  • Гибкость в настройке резервного копирования
  • Уделенное резервное копирование
  • Резервное копирование всей файловой системы
  • Исключение файлов и каталогов из копирования и многое другое.

3. Bacula

Это набор средств с открытым исходным кодом для резервного копирования, восстановления и проверки программного обеспечения. Он разработан для использования в условиях предприятий. Здесь есть такие функции, как удаленное резервное копирование, тонкая настройка и многое другое.

Программа имеет архитектуру сети и состоит из таких компонентов:

  • director - программа, которая управляет процессом резервного копирования.
  • console - инструмент, позволяющий пользователю взаимодействовать с director.
  • file - программа, которая устанавливается на компьютер и выполняет резервное копирование linux.
  • repostiry - используется для чтения и записи на диск.
  • directory - отвечает за используемые базы данных.
  • monitor - отслеживает все события, происходящие в других частях программы.

4. Backupninja

Эта мощная программа для резервного копирования позволяет создавать резервные копии файлов конфигурации и сохранять их в каталоге /etc/backup.d/.

Особенности программы:

  • Удобная настройка с помощью файлов ini
  • Использование сценариев для обработки новых типов резервных копий.
  • Отправка сообщений по электронной почте.
  • Легко выполняется создание резервных копий через терминал.
  • Интеграция с Linux-Vservers.

5. Simple Backup Suite (sbackup)

Это программа резервного копирования linux для рабочего стола Gnome. Пользователи могут выполнить всю настройку через графический интерфейс, для выбора файлов, которые нужно архивировать можно использовать регулярные выражения.

Особенности программы:

  • Создание сжатых и несжатых копий.
  • Поддержка нескольких профилей резервного копирования.
  • Поддержка регистрации, уведомлений по новой почте.
  • Планирование резервного копирования и копирование вручную.
  • Разделение несжатых копий на несколько частей.
  • Поддержка локального и удаленного резервного копирования linux.

6. Kbackup

Это простой инструмент резервного копирования для Unix и Linux. Он может создавать архивы и сжимать их с помощью gzip.

Преимущества программы резервного копирования linux:

  • Удобный интерфейс на основе меню
  • Поддержка сжатия, шифрования, двойной буферизации
  • Автоматическое не обслуживаемое резервное копирование
  • Высокая надежность
  • Поддержка полного и инкрементного резервного копирования
  • Резервное копирование linux по сети
  • Обширная документация

7. BackupPC

Это кроссплатформенное программное обеспечение для резервного копирования, которое может работать на Unix, Linux, Windows и MacOS. Оно разработано в первую очередь для предприятий с большой нагрузкой, но может использоваться не только на серверах, но и на персональных компьютерах.

Возможности программы:

  • Сжатие файлов для уменьшения размера
  • Нет необходимости в клиентской части программы
  • Гибкость резервного копирования
  • Гибкость настройки параметров
  • Уведомление пользователей о необходимости резервного копирования.

8. Amanda

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

9. Back Time

Это простое и легкое средство для резервного копирования операционной системы Linux. Работает с помощью создания снимков указанных директорий.

Поддерживаются такие функции:

  • Установка места хранения для создания снимков
  • Ручные и автоматические резервные копии
  • Словари для резервного копирования.

10. Mondorescue

Это бесплатное программное обеспечение для резервного копирования и восстановления системы, в котором есть все что нужно. Вы можете выполнять резервное копирование персонального компьютера, рабочих станций или сервреов, жестких дисков, NFS шар, CD, DVD и многое другое.

У программы также есть возможность восстановления данных из резервной копии после возникновения каких-либо проблем.

11. Box Backup Tool

Это инструмент с открытым исходным кодом для резервного копирования. Операции можно выполнять вручную, а можно настроить автоматическое выполнение. Возможности:

  • Резервное копирование онлайн
  • Демон для автоматического резервного копирования
  • Хранение резервных копий в файлах
  • Сжатие данных и шифрование
  • Выбор файлов и папок для копирования.

Это бесплатный, мощный, быстрый, надежный и простой в использовании инструмент для резервного копирования и синхронизации на основе rsync.

Функциональность:

  • Сохранение прав собственности файлов
  • Создание нескольких резервных копий файлов
  • Продвинутые опции для файлов и каталогов
  • Позволяет использовать опции rsync.

13. Areca

Это программа для резервного копирования с открытым исходным кодом, ориентированная на использование обычными пользователями. Она позволяет выбрать нужные файлы для копирования, выбрать метод и место хранения.

Программа поддерживает такие функции:

  • Уведомления по электронной почте о процессе резервного копирования
  • Простота в использовании и настройке
  • Просмотр содержимого архивов.

14. Bareos Data Protection

Bareos Data Protection - это набор программ, который позволяет пользователям создавать резервные копии, а также восстанавливать и защищать данные в операционных системах семейства Linux. Программа реализована на основе Bacula и работает как сеть клиент - сервер.

Основные функциональные возможности доступны бесплатно, но для использования профессиональных функций требуется платить.

Выводы

Всегда помните, что резервное копирование данных linux очень важно, оно помогает предотвратить потерю данных. Для Linux есть огромное количество программ резервного копирования Linux, которые помогут регулярно копировать ваши данные.

Вы можете выбрать один из выше рассмотренных инструментов, просто выберите что для вас подходит лучше. Если вы используете другую программу, не описанную здесь, напишите в комментариях!

Возможность случайного повреждения системы, даже такой надёжной как Linux, всегда существует. Как правило, переустановка ОС занимает много времени и сил. Чтобы избежать неприятностей подобного рода следует пользоваться резервным копированием (бэкап) Ubuntu Linux. Я не буду останавливаться на различных способах создания резервной копии Ubuntu, а расскажу метод, которым пользуюсь сам и советую другим. Мне его посоветовал один мой друг. Вы также можете посмотреть о создании резервной копии всех установленных программ в системе в этой статье . Но этот способ лучше использовать не для бэкапа системы, а в тех случаях, когда нам нужно установить аналогичное ПО на много компов, имеющих одинаковую ОС и конфигурацию.

Создание бэкапа ubuntu через Rsync

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

Пару слов о rsync:

Данная команда является очень мощным инструментом для работы с файлами. Ознакомиться с полным списком её возможностей можно написав в консоли man rsync . Предлагаемый мною метод резервного копирования ubuntu через rsync является самым простым и лёгким в освоении.

Бэкап Ubuntu на личном опыте

Чтобы всё было предельно просто - расскажу как у меня происходит backup системы. Мой жесткий диск разбит на 5 разделов, из которых 2 раздела отведено под Ubuntu - системный раздел / и раздел для информации пользователей /home . Я копирую всё содержимое системного раздела / на раздел пользователей в специальную папку /home/.backup . В случае неполадок ОС Ubuntu я запускаюсь с LiveCD и просто копирую бэкап убунту на системный раздел. Основываясь на этом примере ниже будет описана процедура резервного копирования и восстановления Ubuntu Linux.

Резервное копирование (бэкап) Ubuntu

Выполняем в консоли: sudo rsync -aulv -x / /home/.backup/ А теперь давайте разберёмся с синтаксисом этой нехитрой команды
  • sudo - получаем права суперпользователя root;
  • rsync - выполняем команду резервного копирования и задаём дополнительные аргументы -aulv и -x ;
  • / -раздел, который подлежит копированию (системный раздел);
  • /home/.backup/ - место куда будут скопированы файлы (раздел пользователей).
Я специально поставил точку в начале имени директории, чтобы она была невидимой. А также указал, что владельцем директории является суперпользователь и доступ к ней только у него, чтобы лишний раз туда не лазить.

Восстановление Ubuntu через rsync

Допустим, у нас накрылась система и нужно восстановить убунту . Запускаем компьютер при помощи LiveCD с Linux, открываем консоль. Теперь нужно примонтировать (подключить) системный раздел и раздел пользователей, чтобы совершить восстановление системы и здесь можем пойти двумя путями. Первый способ основан на кликах мышки, а второй - на работе в консоли.

Способ №1

Открываем файловый менеджер и видим в левом углу список разделов жесткого диска на ПК. Подключаем их нажатием мышки, после чего они станут доступны для обзора, а их точка монтирования будет находится в директории /media/ . Определяем какой из разделов системный, а какой пользовательский. Недостаток такого способа в том, что разделы получат сложный адрес точки монтирования вроде /media/2F45115E1265048F . Запоминаем адрес точки монтирования системного и пользовательского разделов. Теперь переходим к непосредственному восстановлению, пропускаем раздел "Способ №2".

Способ №2

Для более продвинутых пользователей. Плюс в том, что мы сами назначим имя точкам монтирования и сможем обойтись без громозких адресов. 1. Выводим список разделов HDD: sudo fdisk -l эта команда покажет нам полный список разделов, имеющихся в системе. К примеру, у меня вот такая картинка. Устр-во Загр Начало Конец Блоки Id Система /dev/sda1 771120 27342629 13285755 83 Linux /dev/sda2 27342630 822190634 397424002+ 83 Linux /dev/sda3 * 822190635 883639259 30724312+ 7 HPFS/NTFS/exFAT /dev/sda4 883639260 976768064 46564402+ 5 Расширенный /dev/sda5 883639323 976768064 46564371 7 HPFS/NTFS/exFAT В столбце «Система» легко увидеть, что файловая система Linux располагается на разделах:
  1. dev/sda1
  2. dev/sda2
2. Монтируем Linux разделы командой mount. Для этого сперва создадим точку монтирования для каждого раздела: sudo mkdir /media/1 sudo mkdir /media/2 Используем mount чтобы примонтировать разделы: sudo mount dev/sda1 /media/1 sudo mount dev/sda2 /media/2 3. Определяем какой из разделов является системным, а какой есть папка пользователя. Можем либо просто зайти через файловый менеджер в примонтированные каталоги и посмотреть какой из них системный. Или же, воспользуемся командой ls (показывает список файлов по заданному адресу): ls /media/1 ls /media/2 Если Вы не слишком опытный пользователь - подскажу, что системный раздел Linux, как правило, будет иметь следующие папки: bin, boot, dev, etc, mnt и т. д. Допустим мы установили, что системный раздел сейчас примонтирван по адресу /media/1 .

Непосредственное восстановление

1. Копируем файлы из резервной копии. Используем такую же команду: sudo rsync -aulv -x /media/2/.backup/ /media/1/
при использовании графического способа №1 вместо /media/1/ и /media/2/ у вас будут другие точки монтирования!
2. Отмонтируем разделы по окончанию копирования: sudo umount /media/1 sudo umount /media/2 Перезагружаем компьютер и наслаждаемся восстановленной из бэкапа Ubuntu.

Видеоурок по резервному восстановлению Ubuntu

На основании вышеописанного материала планирую записать показательный видеоурок по восстановлению Убунту в виртуальной системе. Для работы над проектами использую svn, который находится на удаленном виртуальном выделенном хосте, под управлением ubuntu 8.04. Со временем объемы данных выросли, как и критичность этих данных. Потеря чего-то снилась в кошмарах. Время от времени копировал репозитории на локальный компьютер. Недавно мне это надоело. И я стал искать возможности автоматизировать это дело. Не буду говорить о поисках и вариантах, расскажу о результатах.

Итак, мы имеем удаленный хост под управлением ubuntu, с некоторым массивом довольно критичных данных. Довольно логичным было бы настроить бэкап прямо на удаленном хосте, с помощью tar по крону, rsyns и т.д. Но, т.к. место на виртуальном выделенном хостинге довольно дорого и использовать его лучше по делу, идеально было бы, чтобы данные автоматически копировались на какую нибудь локальную машину, место на которой хоть отбавляй. В моем случае это файловый сервис в офисе, под управлением все той же Ubuntu.

Установка

Устанавливаем rsnapshot:

$ sudo apt-get install rsnapshot

Если вы используете не debian-подобный дистрибутив, rsnapshot наверняка тоже есть в репозиториях вашего дистрибутива. Для CentOS, при включенных RPMForge это делается, например, так:

# yum install rsnapshot

Теперь нам нужно создать директорию, где мы собираемся хранить наши «снимки»:

$ sudo mkdir /var/snapshots

Настройка

Теперь можно перейти к настройке, собственно, rsnapshot:

$ sudo nano /etc/rsnapshot.conf

Вместо nano вы можете использовать любой другой редактор, например vi, или gedit, если работаете в GNOME.
Настроить нужно следующие параметры:

Snapshot_root - директория, в которую вы хотите сохранять "снимки".

Interval xxx yy - ххх - название интервала(например hourly, daily), yy - количество снимков для каждого. Например:
interval hourly 6
interval daily 7

Означает, что мы хотим хранить 6 ежечасных копий и 7 ежемесячных. Если уже доступно указанное количество копий, rsnapshot будет заменить старую более новой.

Расскомментируйте cmd_cp. cmd_ssh расскоментируйте и измените на

Cmd_ssh /usr/bin/ssh

Настройка бэкапа осуществляется командой backup <откуда> <куда>:

#Добавляем папку /etc/ с локальной машины в папку localhost/
backup /etc/ local/
#Добавляем папку /var/svn с удаленной машины в папку remotehost/
backup [email protected]:/var/svn/ remotehost/

Помните, что в конфигурационном файле недопустимы пробелы - используйте только табы.

Пробный запуск

Запустим rsnapshot:
$ rsnapshot hourly

Второй параметр означает интервал, который мы задали в конфигурационном файле.
Команда может выполняется продолжительное время. После выполнения, смотрим, что она создала:
$ ls -l /var/snapshots

Пока что в директории должен быть один каталог: hourly.0. При следующем запуске rsnapshot будет создавать каталоги hourly.1, hourly.2 и т.д., пока не упрется в максимум, указанный нами в конфигурационном файле.

Настройка cron

В Ubuntu автоматически создается файл /etc/cron.d/rsnapshot со следующим содержанием:
0 */4 * * * root /usr/bin/rsnapshot hourly
30 3 * * * root /usr/bin/rsnapshot daily
0 3 * * 1 root /usr/bin/rsnapshot weekly
30 2 1 * * root /usr/bin/rsnapshot monthly

Вот и все. Теперь у вас 6 раз в сутки должен автоматически создаваться снимок данных с вашего удаленного сервера. Данные в сохранности, да еще и географически распределены.

Кстати, 6 раз в сутки не означает, что размер будет в 6 раз больше, чем если копировать всего 1 раз в сутки. Если в промежутки между копированиями не будет изменений в файлах, то общий размер копий почти не изменится.

Дополнительная информация

С помощью параметра backup_script можно также настроить резервное копирование баз данных MySQL, да и вообще всего, чего угодно. Я не описывал сей процесс, т.к. у меня он не используется и ничего конкретного сказать не могу.
Подробнее можно почитать в гугле. По запросу rsnapshot вылезает куча релевантных ссылок, правда на английском языке.


Top