Как сделать резервную копию ubuntu
Настройка резервного копирования в Ubuntu
Для работы над проектами использую svn, который находится на удаленном виртуальном выделенном хосте, под управлением ubuntu 8.04. Со временем объемы данных выросли, как и критичность этих данных. Потеря чего-то снилась в кошмарах. Время от времени копировал репозитории на локальный компьютер. Недавно мне это надоело. И я стал искать возможности автоматизировать это дело. Не буду говорить о поисках и вариантах, расскажу о результатах.
Итак, мы имеем удаленный хост под управлением ubuntu, с некоторым массивом довольно критичных данных. Довольно логичным было бы настроить бэкап прямо на удаленном хосте, с помощью tar по крону, rsyns и т.д. Но, т.к. место на виртуальном выделенном хостинге довольно дорого и использовать его лучше по делу, идеально было бы, чтобы данные автоматически копировались на какую нибудь локальную машину, место на которой хоть отбавляй. В моем случае это файловый сервис в офисе, под управлением все той же Ubuntu.
Подготовка
Данные будем переливать с помощью SSH, поэтому давайте сначала настроим public и private ключи для локального и удаленного серверов. Делаем это для того, чтобы программа, которая будет переливать данные могла заходить по SSH без пароля.
Оставьте папку по-умолчанию, а пароль сделайте пустым.
Эта команда должна создать в папке
/.ssh(по умолчанию) два файла — private и public key. private предназначается для локальной машины, pub отправляется на удаленный.
Теперь копируем private key в папку /root/.ssh, чтобы пользователь root так мог пользоваться им
/.ssh
$ sudo mkdir /root/.ssh
$ sudo cp id_dsa /root/.ssh
Теперь надо скопировать public key на удаленную машину, с которой мы хотим копировать данные. Предварительно создайте пользователя backup на удаленной машине(команда adduser). Не забудьте дать этому пользователю права на чтение каталогов, которые вы хотите копировать.
/.ssh/id_dsa.pub | ssh backup@remotehost.ru «cat >>
Теперь можем попробывать зайти через ssh на удаленную машину:
В случае, если все сделано правильно, нас впустит без пароля.
На удаленной машине ставим нормальные права на чтение публичного ключа:
Настройка rsnapshot
rsnapshot — утилита для создания копий состояния файловых систем на базе rsync. Она упрощает создание периодических копий с локальной и удаленных машин по ssh. Она использует, по возможности, жесткие связи, что позволяет существенно уменьшить объем необходимого дискового пространства. (цитата отсюда)
Установка
$ 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.
Настроить нужно следующие параметры:
Означает, что мы хотим хранить 6 ежечасных копий и 7 ежемесячных. Если уже доступно указанное количество копий, rsnapshot будет заменить старую более новой.
Расскомментируйте cmd_cp. cmd_ssh расскоментируйте и измените на
Настройка бэкапа осуществляется командой backup :
#Добавляем папку /etc/ с локальной машины в папку localhost/
backup /etc/ local/
#Добавляем папку /var/svn с удаленной машины в папку remotehost/
backup backup@remotehost.ru:/var/svn/ remotehost/
Помните, что в конфигурационном файле недопустимы пробелы — используйте только табы.
Пробный запуск
Запустим rsnapshot:
$ rsnapshot hourly
Пока что в директории должен быть один каталог: 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 вылезает куча релевантных ссылок, правда на английском языке.
Прошу особо не ругать, на гуру администрирования(да и linux) я не похож, но довольно долго искал, как просто автоматизировать резервное копирование — нашел способ, решил поделиться.
Но конструктивной критике и предложениям буду, конечно, рад.
UPD: Эта же статья в моем блоге
Бэкап Linux и восстановление его на другом железе
Я работаю в организации с маленьким штатом, деятельность тесно связана с IT и у нас возникают задачи по системному администрированию. Мне это интересно и частенько я беру на себя решение некоторых.
На прошлой неделе мы настраивали FreePBX под debian 7.8, нанимали фрилансера. В процессе настройки оказалось, что сервер (да, я так называю обычный PC) не хочет грузится с HDD при подключенных USB 3G модемах, которые мы используем для звонков на мобильные, колупание BIOSа не помогло. Непорядок. Решил, что нужно перенести его на другую железяку. Так появилось сразу две связанные задачи:
Опыт общения с linux-системами у меня небольшой: настройка VPN сервера на open-vpn, ftp-сервера и еще пара мелочей. Сам себя я характеризую как человека умеющего читать маны и править конфиги 🙂
Ниже я описываю свой частный случай и почему я поступил именно так. Надеюсь, новичкам будет полезно, а бородатые админы улыбнутся вспомнив молодость.
Начинаем копать теорию:
Второй способ требует наличия внешнего жесткого диска объемом не меньше раздела, который архивируем. Да и что с ним потом делать, непонятно, хранить на полочке? Остановился на tar, чуть сложнее в реализации, нужно будет создать MBR, но время создания/восстановления архива существенно меньше, хранить бэкап проще, полтора гига можно закинуть в облако и скачать, когда будет нужно. Записывать его можно на ту же live-флэшку, с которой буду грузиться.
Итак, план действия:
1. Создание бэкапа
Грузимся с live-флэшки, у меня это debian-live-7.8.0-amd64-standard.
Переключаемся на root:
Наша флэшка уже примонтирована, но в режиме только чтения, нужно перемонтировать для чтения-записи, чтобы писать туда бэкап.
Все готово для создания архива
Ждем… у меня вся подготовка и создание архива заняли 10 минут. Будь флэшка быстрее, уложился бы в 7-8 минут.
Складываем архив в надежное место за пределами офиса.
Восстановление бэкапа на другом железе
2. Размечаем диск, создаем файловую систему
Грузимся с live-флэшки, у меня все та же debian-live-7.8.0.
Переключаемся на root:
Размечаем диск. Мне понравилась утилита с псевдографическим интерфейсом cfdisk. Там все просто и понятно.
Удаляем все имеющиеся разделы. Я создал два новых раздела, один на 490 Gb под / (sda1) и 10 Gb под swap (sda2) в конце диска, т.к. он практически не будет задействован. Проверим типы разделов. Который под систему должен иметь тип 83 Linux, второй — 82 Linux swap / Solaris. Помечаем системный раздел загрузочным (bootable), сохраняем изменения и выходим.
Cоздаем файловую систему на первом разделе.
3. Распаковываем архив.
Монтируем отформатированный раздел
Распаковываем архив прямо с флэшки
4. Создаем MBR на новом диске.
Чтобы корректно создать загрузочную запись, монтируем рабочие каталоги к нашему будущему root-каталогу, у меня это /mnt. Каталоги /dev и /proc сейчас используются live-системой, используем параметр bind, чтобы они были доступны сразу в двух местах:
Переключаемся на новую систему используя chroot:
Делаем swap-раздел для новой системы:
Чтобы grub работал, нужно указать ему правильные UUID разделов в fstab, сейчас там прописаны разделы предыдущей системы:
Открываем второй терминал (Alt+F2) под root:
И видим текущие UUID разделов.
Вручную переписываем их в fstab переключаясь между Alt+F1 и Alt+F2. Да, муторно, но попытки копировать занимали у меня больше времени, чем переписывание. Сохраняем fstab.
Устанавливаем grub2. У меня один физический диск, поэтому ставим его на sda:
На чистый диск должно встать без ошибок. Обновляем информацию из fstab:
Возвращаемся в Live-систему:
Размонтируем все каталоги:
Если вылазят процессы, которые используют эти каталоги, убиваем их используя fuser.
Все, поехали. Грузимся с жесткого диска:
Здесь статья должна была закончиться, но у меня возникли проблемы с подключением к интернету. Сервер видит сеть, видит компьютеры в ней, но в интернет не ходит… а это как бы важно для телефонии.
5. Тестирование и устранение неполадок.
Показывет интерфейсы eth1 и lo, гугление сказало, что gateway можно прописать только подключению eth0, остальные рассчитаны только на работу внутри сети.
Похоже, отсутствие eth0 вызвано способом переноса системы. Находим файл, который отвечает за нумерацию интерфейсов, смотрим туда:
Действительно, там два активных интерфейса, определенных MAC’ами. Комментируем первый, второму прописываем eth0.
Перезапуск /etс/init.d/networking не помог, поэтому перезагружаемся:
Подключаем донглы, проверяем, все работает.
Спасибо за внимание.
Как сделать резервные копии данных в Ubuntu и других дистрибутивах
Мы разделили эти методы на два типа: инкрементные резервные копии (ежедневные, еженедельные, ежемесячные и т. Д.) И одноразовые резервные копии (выполняемые вручную в любое время).
Инкрементные резервные копии Linux
Инкрементные резервные копии идеально подходят для тех случаев, когда необходимо, чтобы резервные копии оставались максимально актуальными. Обычно они запланированы как автоматические, но при желании можно создавать инкрементные резервные копии вручную, хотя мы не обязательно рекомендуем это делать.
Использование CrashPlan
CrashPlan обрабатывает все ваши резервные копии данных за кулисами. Все, что вам нужно сделать, это установить клиент, указать, какие каталоги и файлы вы хотите сохранить в резервной копии, и позволить ему делать свое дело. Он работает в Windows, Mac и Linux.
Как бесплатный пользователь, вы имеете неограниченный доступ к резервным копиям, хранящимся на локальных и внешних дисках, а также к автоматическим ежедневным резервным копиям. С индивидуальной учетной записью на 5 долларов в месяц вы получаете неограниченное онлайн-хранилище и непрерывное ежеминутное резервное копирование. Файлы хранятся неограниченное время с использованием 448-битного шифрования.
Это лучший вариант для новичков в Linux и тех, кто предпочитает подход резервного копирования данных «вне поля зрения».
Использование Duplicati
Duplicati — это еще один клиент для настольных компьютеров, который обрабатывает резервные копии от вашего имени с помощью встроенного планировщика. Он поддерживает множество облачных и сторонних сервисов, таких как Google Drive, OneDrive, Amazon S3, Rackspace и т. Д. Сам клиент бесплатный и доступен в Windows и Linux.
Как и следовало ожидать, первая резервная копия является полной резервной копией, а последующие резервные копии основаны на различиях файлов. Интерфейс прост в использовании, хотя и не совсем красив. Резервные копии перед загрузкой защищены шифрованием AES-256.
Duplicati имеет несколько других расширенных функций, включая фильтры выбора, правила удаления, настройки пропускной способности при передаче файлов и многое другое. Посетите страницы «Как сделать», чтобы узнать, как в полной мере использовать Duplicati.
Использование Rsnapshot
Rsnapshot — это утилита командной строки, которая построена поверх утилиты командной строки rsync. Он создает «основную» резервную копию при первом использовании, а затем сохраняет только различия файлов для каждой будущей резервной копии, что в конечном итоге экономит место на диске.
Эти автоматические резервные копии могут храниться на локальных и внешних дисках, USB-дисках, дисках, смонтированных по NFS, или даже на любой другой машине в вашей сети, использующей SSH.
Пакет rsnapshot доступен на всех системах, использующих Yum и Apt. Чтобы установить с помощью Yum:
И установить с помощью APT:
Наиболее важными параметрами являются snapshot_root (где хранятся резервные копии), раздел с интервалами резервного копирования и разделы, в которых вы указываете, какие каталоги вы хотите сохранить.
Приятно то, что вы можете настроить его так, чтобы он делал все, что угодно, например, для хранения резервных копий в Dropbox или Spideroak, и позволяя этим решениям для хранения выполнять синхронизацию.
Использование Борг
Еще в 2010 году появилась утилита резервного копирования Attic. Он предлагал систему резервных копий, которые были дедуплицированы, сжаты и зашифрованы, не будучи чрезмерно сложными в настройке или использовании. Но к 2015 года разработка прекратилась, и поэтому были разветвлены
Таким образом, Борг родился. Поначалу это может быть немного утомительно для тех, кто не знаком с командной строкой, но Борг хорошо документирован. Веб-сайт держит вас за руку, так что вы сможете быстро освоить его.
Borg доступен в репозиториях самых популярных дистрибутивов, включая Ubuntu, Debian и Arch Linux. Найдите пакет borgbackup (кроме Arch Linux, где он называется borg ). Например, в Ubuntu:
После установки Borg вам нужно выполнить всего три шага. Первый шаг необходим только для самой первой резервной копии, а третий шаг необходим только тогда, когда вам действительно нужно восстановить резервную копию.
Первым шагом является назначение определенного каталога местом хранения резервных копий:
Второй шаг — создание резервной копии определенного каталога. В этом разделе мы собираемся создать резервную копию трех каталогов — с именами
/ three — в архив с текущей датой, 2016-06-22 :
На следующий день я мог бы создать еще одну резервную копию:
И когда вам нужно восстановить резервную копию:
Легко, не правда ли? Посетите страницу быстрого запуска Borg, чтобы узнать больше, включая информацию о том, как просмотреть содержимое данного архива, удаление архивов, автоматизацию резервного копирования и многое другое.
Для одноразовых резервных копий
Но для больших резервных копий, таких как копирование всего диска для резервирования, одноразовое ручное действие более практично. Вот когда эти варианты пригодятся.
Используя дд
dd — это утилита командной строки, которая доступна во всех операционных системах на основе Unix. Нет никакой реальной причины, почему он называется «dd», но некоторые называют его «уничтожителем дисков», потому что его использование может быть невероятно рискованным.
Короче говоря, если вы не будете осторожны, вы можете в конечном итоге стереть один из дисков Это не очень забавная ситуация, особенно если вы хотели создать резервную копию этого диска. Уч.
Например, на практике вы можете использовать:
В этом гипотетическом случае / dev / sda1 — это входной диск (или исходный диск), а / dev / sdb1 — выходной диск (или целевой диск). Все, что находится на входном диске, будет клонировано на выходном диске. Резервное копирование никогда не было проще, чем это.
Сложная задача — найти правильные пути к нужным дискам. К счастью, большинство дистрибутивов поставляются с приложением для управления дисками, которое вы можете использовать для определения путей. Вот как я нашел путь к моему диску с помощью приложения Disks в Linux Mint:
Обратите внимание, что это на самом деле будет перезаписывать все на целевом диске, поэтому будьте очень осторожны, если у вас есть правильный диск И чтобы вы не делали опечаток при использовании команды.
Использование Clonezilla
Однако, чтобы использовать его, вам нужно установить Clonezilla на CD, DVD или USB-накопитель. Не уверен, как это сделать? Просто следуйте инструкциям по настройке страницы Clonezilla Live, и все будет в порядке.
Когда готовый CD, DVD или USB-накопитель будет готов, просто вставьте его в компьютер, для которого требуется создать резервную копию, и дайте ему загрузиться. Если он не загружается с помощью живого носителя, обратитесь к нашему руководству по изменению порядка загрузки вашего ПК.
Если он загрузится правильно, вам будет представлен пошаговый мастер, который проведет вас через весь процесс. Однако мы рекомендуем предварительно прочитать руководство по использованию Clonezilla Live, чтобы вы могли ознакомиться с ними и избежать возможных ошибок.
Еще одна вещь: некоторые диски лучше для резервного копирования, чем другие. Для достижения максимальной производительности ознакомьтесь с нашим руководством по выбору диска для резервного копирования.
Использование копирования и вставки
Если дд и клонезилла кажутся вам излишними, то есть другой вариант. Если все, что вам нужно, — это одноразовое резервное копирование набора документов, чтобы вы могли архивировать их на неопределенный срок, и если эти документы вообще не будут меняться, то…
Все дело в использовании правильного инструмента для работы. Не имеет смысла копировать и вставлять весь жесткий диск на другой, именно поэтому существуют такие приложения, как Clonezilla. Но в равной степени неразумно использовать Clonezilla для копирования одного файла или каталога.
Возьмите эти документы и скопируйте их на внешний диск, затем скопируйте их в службу облачного хранилища для дополнительной защиты. Иногда это действительно так просто. Не делай это сложнее, чем должно быть.
Какой у вас метод резервного копирования?
Снова спрашиваю, с вами все будет в порядке, если бы ваш диск умер прямо сейчас? Что если ваш дом сгорел или ваш провайдер облачного хранилища исчез за одну ночь? Сохраняете ли вы резервные копии данных, и достаточно ли их?
Теперь, когда вы знаете, что эти опции существуют, у вас нет оправдания тому, что вы не заботитесь о своих данных, особенно потому, что есть бесплатные опции, такие как CrashPlan и Duplicati, которые могут обрабатывать все без каких-либо усилий с вашей стороны.
Не ждите, пока не станет слишком поздно.
У вас есть регулярные резервные копии? Если да, то какие методы вы используете и где именно храните эти резервные копии? Есть какие-нибудь советы для тех, кто не хранит резервные копии? Дайте нам знать в комментарии ниже!
compizomania
Азбука в Linux для начинающих и не только. Я знаю только то, что ничего не знаю, но другие не знают и этого. Сократ
Страницы
13 марта 2012
Как сделать полную резервную копию системы с помощью терминала в Ubuntu / Linux
В этой инструкции я хочу показать, как использовать терминал для резервного копирования наших системных файлов и папок в одном сжатом архивном файле (мы будем использовать формат bz2). Команда, которую мы собираемся использовать исключит ненужные папки из процесса резервного копирования. Создание полной резервной копии системных файлов и папок позволит вам восстановить их позже в случае возникновения неожиданных неприятностей с системой.
Архивный файл, который мы собираемся создать, будет храниться в папке «backup», в домашнем каталоге. После создания резервной копии вашей системы вы можете переместить её в любое другое место на ваш выбор: жёсткий диск или в «облаке» (Ubuntu One, Dropbox и т.д.).
Откройте терминал (Ctrl + Alt + T) и выполните следующую команду, чтобы создать папку, в которую мы хотим сохранить файл резервной копии:
Теперь запустим резервное копирование системы, выполнив следующую команду:
По окончании резервного копирования вы можете просмотреть папку, содержащую файл резервной копии архива с помощью следующей команды:
Восстановить систему можно, выполнив следующую команду:
Или этой командой, где указан полный путь к файлу:
25 комментариев :
И как сие понимать.
Именно не так. Вы указали директорию
/backup, а исключили не
/backup.tar.bz2 будет сам себя в себя копировать, ведь /home тоже копируется.
потому что остальные команды явно указывают на каталоги, находящиеся не в каталоге вашего пользователя, смотрите сами:
Это всё в КОРНЕВОМ каталоге /
А как такой бэкап сделать только на внешний жёсткий диск?
Сделать бэкап на жёсткий диск, скопировать на флешку и перенести на внешний жёсткий диск. Как-то так.
При использовании команд выше бэкап создаётся с ошибкой,по крайней мере у меня. Нет доступа к папке root и lost+found.
Так, как новичек вообще в этом деле, хотел спросить: при востановлении сохранятся все настройки комфиз, тема, значки или просто востановится система, при установке? И как нужно востанавливать? С безопасного режима?
Ну извините и не смейтесь-я нуб(пока, что))))
Резервное копирование Linux серверов встроенными средствами
В инструкции описан процесс создания резервной копии системы с операционной системой Linux с помощью утилиты dd и tar.
Что это такое?
Создание резервной копии с помощью dd
Команда dd копирует файл, преобразуя в процессе формат данных, в соответствии с указанными операндами. Программа генерирует необработанные файлы, которые могут быть прочитаны многими другими программами. dd является самой старой утилитой для создания образов и не обладает некоторыми полезными опциями, но при этом все еще используется.
Чтобы сделать запасную копию вашего жесткого диска используйте следующую команду:
dd if= of= bs=8M conv=sync,noerror
Примечание: на целевом диске должно быть достаточно места, т.е. не менее того объема, который занимает исходный диск.
Виртуальный сервер на базе Linux
Восстановление из резервной копии с помощью dd
Чтобы сделать восстановление вашего жесткого диска из резервной копии используйте следующую команду:
dd if= of= bs=8M conv=sync,noerror
dd if=/mnt/backup/sda.img of=/dev/sda bs=8M conv=sync,noerror
Создание резервной копии с помощью tar
Чтобы сделать бекап вашей системы используйте следующую команду:
Восстановление из резервной копии с помощью tar
Для восстановления из резервной копий вашей системы используйте следующую команду:
Создавать резервную копию очень удобно по настроенному расписанию, о том как настроить планировщик Linux Cron читайте в нашей статье. Это позволит автоматизировать создание копий сервера или данных.
Примечание:
В рамках нашего сервиса есть услуга резервного копирования серверов, копирование выполняется 1 раз в сутки на территориально удаленный дисковый массив, при этом вам не нужно самостоятельно выполнять настройки резервирования, а сохранность копии не зависит от работоспособности сервера.