Backup linux сервера с помощью Duplicity
Существует много инструментов для выполнения архивации данных на линуксе. Сегодня хочу рассмотреть программу duplicity, с помощью которой можно выполнить полный бэкап linux сервера. Она проста в использовании, но при этом очень удобна и функциональна.
Введение
Обычно я использую для бэкапов rsync. Это гибкое и удобное средство, но в некоторых случаях им неудобно пользоваться. У него есть как плюсы, так и минусы. Как я использую и настраиваю rsync для бэкапа, я рассказал в отдельной статье. Если вы хотите получить компактный бэкап всей системы, или хранить на удаленном сервере бэкап с множеством файлов и директорий, вам придется как-то упаковывать файлы в архивы и передавать их. Кучу мелких файлов в сыром виде передавать медленно и неудобно.
Я часто использую для хранения бэкапов Y andex.Disk. Готовый кейс по настройке бэкапа сайта на яндекс.диск я уже приводил ранее. Диск монтируется по webdav и работает достаточно медленно. Передавать кучу мелких файлов по нему не удобно. Я решил посмотреть, что есть еще из средств бэкапа. Параллельно хотел рассмотреть вопрос удобного бэкапа всего сервера.
Нашел любопытную программу duplicity. Раньше слышал о ней, но руки не доходили проверить самому. Теперь дошли, перейдем к настройке полного бэкапа сервера.
Установка duplicity на Centos
С установкой все просто:
Ставится из репозитория epel. Если у вас не ставится, проверьте, подключены ли репозитории.
Выполняем полный бэкап linux сервера
Чтобы полностью забэкапить сервер, необходимо использовать duplicity со следующими параметрами:
full | Указывает, что мы делаем полный бэкап, можно делать и инкрементный. |
—exclude | Параметр задает списки исключений, сверьте со своим сервером и добавьте необходимые для исключения папки. |
/ | Источник бэкапа. В данном случае корень диска. |
file:///mnt/yadisk | Локальный путь к папке /mnt/yadisk, куда делаем бэкап. У меня в эту папку смонтирован яндекс.диск. |
—no-encryption | Параметр указывает на то, что шифрование не используется. |
После выполнения бэкапа получите следующую информацию:
После полного бэкапа, можно выполнять инкрементный бэкап. Для этого в приведенной выше команды, вместо параметра full нужно использовать incremental.
Восстановление из бэкапа
Для того, чтобы извлечь содержимое бэкапа в папку /restore, воспользуемся командой:
Если вам нужно восстановить какой-то отдельный файл или папку, укажите эту папку или файл следующим образом:
Во время восстановления каталога, папки создавать вручную не надо. Если восстанавливаете файл, то полный путь к конечной директории должен существовать.
Проверка и удаление бэкапов duplicity
Приведу еще несколько полезных команд для проверки бэкапов.
Посмотреть информацию о бэкапах в заданном каталоге:
Проверить содержимое бэкапа и сравнить с оригиналом:
В данном случае не очень информативный вывод будет, так как будут отражены все файлы из исключенных директорий, а их очень много.
Посмотреть список файлов в архиве:
Необходимым функционалом является очистка старых бэкапов. Для того, чтобы удалить все бэкапы старше одного месяца, нужно воспользоваться командой:
Чтобы удалить все бэкапы, кроме последнего, подойдет команда:
На этом все, основные моменты я рассказал. Для бэкапа сервера или отдельных папок этого достаточно.
Заключение
Я рассмотрел малую часть функционала дуплисити. Большим ее плюсом является поддержка всевозможных удаленных хранилищ для бэкапа: ftp, ssh, различные облачные хранилища и другое. Хорошим преимуществом так же является возможность шифровать свои бэкапы. Мне пока нет надобности все это использовать, поэтому я рассмотрел только свой частный случай.
Как настроить кросс-платформенный сервер резервного копирования на Linux с BackupPC
В этом сообщение я представлю вам BackupPC, программный кросс-платформенный бэкап сервер, который через сеть может вытянуть резервное копирование клиентов Linux, Windows и MacOS. В BackupPC добавлено ряд функций, которые делают резервное копированиче чуть ли не приятной вещью.
Особенности BackupPC
BackupPC поставляется с надёжным веб-интерфейсом, который позволяет вам собирать и управлять централизованным образом резервными копированиями других удалённых хостов. Используя веб-интерфейс, вы можете изучить файлы журналов и конфигурационные файлы, запустить/отменить/настроить расписания резервных копирований удалённых хостов и визуализировать текущий статус задач резервного копирования. Вы также можете просматривать архивные файлы и очень просто восстанавливать отдельные файлы или всё полностью из архивов бэкапов. Для восстановления индивидуальных отдельных файлов, вы можете загружать их из предыдущих бэкапов прямо в веб-интерфейсе. Если этого недостаточно, не требуется специальной программы на стороне клиента для клиентских хостов. На Windows клиентах используется родной протокол SMB, в то время как на *nix клиентах вы будете использовать rsync или tar через SSH, RSH или NFS.
Установка BackupPC
На Debian, Ubuntu, Mint и их производных запустите следующую команду.
На Fedora используйте команду yum command. Обратите внимание, что имя пакета регистрозависимое.
На CentOS/RHEL 6 сначала включите репозиторий EPEL. На CentOS/RHEL 7 включите вместо репозиторий Nux Dextop. Затем продолжайте с командой yum:
Далее команды на разных дистрибутивах Linux идентичны, пользователи Debian, Ubuntu, Mint и их производных не забывайте ставить sudo перед каждой командой.
Как обычно, обе системы управления пакетами будут заботиться об автоматическом разрешении зависимостей. В дополнение как часть установочного процесса, вас могут спросить настроить почтовый сервер, настроить или перенастроить веб-сервер, который будет использован для графического пользовательского интерфейса. Я не стал ничего настраивать в почтовом сервере (чтобы не удлинять инструкцию). Следующие скриншоты из системы Debian:
Сделайте ваш выбор нажав на пробел и затем перейдите к Ок, используя кнопку [Tab], и нажмите [Enter].
Вам будет представлена следующий экран, информирующий вас, что администраторский пользовательский аккаунт ‘backuppc’ с соответствующим ему паролем (который, по желанию, может быть изменён), был создан для управления BackupPC. Обратите внимание, что пользовательский аккаунт HTTP и обычный Linux аккаунт с одинаковым именем ‘backuppc’ будут созданы с идентичным паролем. Первый нужен для получения доступа в защищённый веб-интерфейс BackupPC, в то время как второй нужен для выполнения резервного копирования используя rsync через SSH.
Вы можете изменить пароль по умолчанию для HTTP пользователя ‘backuppc’ следующей командой:
Для изменения обычного ‘backuppc’ пользовательского аккаунта Linux, используйте команду passwd.
Обратите внимание, что установочный процесс автоматически создаст веб и программный конфигурационные файлы.
Запуск BackupPC и настройка Backups
Чтобы начать, откройте окно браузера по адресу http:// /backuppc/. Когда появится окно запроса, введите данные HTTP пользователя, которые были предоставлены вам ранее. Если авторизация успешна, вас перекинет на главную страницу веб-интерфейса.
Наиболее вероятно, первое, что вам нужно сделать, это добавить хосты клиентов для резервного копирования. Перейдите в “Edit Hosts” (редактирвоание хостов) в панеле задач. Мы добавим два клиентских хоста:
- Host #1: CentOS 7 [IP 192.168.0.17]
- Host #2: Windows 7 [IP 192.168.0.103]
Мы будем делать резервное копирование CentOS, используя rsync через SSH, и хоста Windows, используя SMB. До выполнения резервного копирования, нам нужно настроить основанную на ключе аутентификацию на наш хост CentOS и сделать доступной по сети (расшарить) каталог на Windows машине.
Вот инструкция для настройки аутентификации, основанной на ключе, для удалённого хоста CentOS. Мы создаём пользователю ‘backuppc’ пару ключей RSA и переносим публичный ключ в аккаунт рута хоста CentOS.
Когда спросят, напечатайте yes и введите пароль рута для 192.168.0.17.
Вам понадобиться рут доступ для удалённого хоста CentOS для получения доступа записи на всю файловую систему в случае восстановления бэкапа файлов или каталогов, собственником которых является рут.
Когда хосты CentOS и Windows готовы, добавьте их в BackupPC используя веб-интерфейс:
Следующий шаг состоит из изменения настроек резервного копирования каждого хоста:
Следующее изображение показывает настройку для резервного копирования на Windows машине:
А следующий скриншот показывает настройку резервного копирования для CentOS:
Запуск резервного копирования
Для запуска каждого резервного копирования, перейдите к настройкам каждого хоста, а затем кликните “Start Full Backup”:
В любое время, вы можете просмотреть статус процесса, кликнув на home хоста, как показано в изображении выше. Если это по каким-либо причинам не получилось, также появится ссылка на страницу с сообщением ошибки (ошибок) в меню хоста. Когда резервное копирвоание завершено успешно, на сервере создаётся каталог с названием хоста или IP адресом в /var/lib/backuppc/pc:
Вы можете переходить по каталогам в поисках файлов, используя командную строку, но есть и более простой способ обозревать эти файлы и восстанавливать их.
Восстановление резервных копий
Для просмотра сохранённых файлов, переходите в раздел “Browse backups”, что находится в главном меню хоста. Вы можете визуализировать каталоги и файлы с первого взгляда и выбрать те, которые вы хотите восстановить. Как вариант, вы можете кликнуть по файлу и открыть его, используя программу по умолчанию, или кликните правой кнопкой и выберете Сохранить ссылку, для его загрузки на машину, где вы работаете в данный момент:
Если хотите, то можете загрузить файлы zip или tar, заключающие содержание резеврных копий или просто восстановите файл (файлы) на прежнее место:
Заключение
Говорят «Чем проще — тем лучше», и именно это предлагает BackupPC. В BackupPC вы найдёте не только инструмент для резервного копирования, но также разносторонний интерфейс для управления вашими резервными копиями нескольких операционных систем без необходимости приложения на стороне клиента. Я уверен, что более чем достаточная причина, чтобы хотя бы попробовать.
Оставляйте ваши комментарии и вопросы, если они у вас есть, используя форму внизу. Я всегда счастлив услышать, что говорят читатели!