Home » Linux » Backup linux сервера с помощью Duplicity

Backup linux сервера с помощью Duplicity

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

Если у вас есть желание научиться работать с роутерами микротик и стать специалистом в этой области, рекомендую по программе, основанной на информации из официального курса MikroTik Certified Network Associate. Курс стоящий, все подробности читайте по ссылке. Есть бесплатные курсы.

Если вас интересует готовое бесплатное решение для бэкапа и переноса всего сервера, читайте статью с описанием такого решения — Veeam Agent for Linux. В статье отдельно на конкретном примере рассмотрен вопрос бэкапа и переноса всего сервера целиком на другое железо.

Введение

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

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

Нашел любопытную программу duplicity. Раньше слышал о ней, но руки не доходили проверить самому. Теперь дошли, перейдем к настройке полного бэкапа сервера.

Установка duplicity на Centos

С установкой все просто:

# yum install -y duplicity

Ставится из репозитория epel. Если у вас не ставится, проверьте, подключены ли репозитории.

Выполняем полный бэкап linux сервера

Чтобы полностью забэкапить сервер, необходимо использовать duplicity со следующими параметрами:

duplicity full --exclude=/proc --exclude=/sys --exclude=/dev --exclude=/proc --exclude=/sys --exclude=/mnt --exclude=/media --exclude=/tmp --exclude=/var/spool --exclude=/var/cache --exclude=/var/tmp --exclude=/swap / file:///mnt/yadisk --no-encryption
fullУказывает, что мы делаем полный бэкап, можно делать и инкрементный.
—excludeПараметр задает списки исключений, сверьте со своим сервером и добавьте необходимые для исключения папки.
/Источник бэкапа. В данном случае корень диска.
file:///mnt/yadiskЛокальный путь к папке /mnt/yadisk,  куда делаем бэкап. У меня в эту папку смонтирован яндекс.диск.
—no-encryptionПараметр указывает на то, что шифрование не используется.

После выполнения бэкапа получите следующую информацию:

Duplicity Full backup

После полного бэкапа, можно выполнять инкрементный бэкап. Для этого в приведенной выше команды, вместо параметра full нужно использовать incremental.

Duplicity Incremental backup

Восстановление из бэкапа

Для того, чтобы извлечь содержимое бэкапа в папку /restore, воспользуемся командой:

duplicity --no-encryption --file-to-restore / file:///mnt/yadisk /restore

Восстановление файлов

Если вам нужно восстановить какой-то отдельный файл или папку, укажите эту папку или файл следующим образом:

duplicity --no-encryption --file-to-restore var/log file:///mnt/yadisk /restore/var/log
duplicity --no-encryption --file-to-restore var/log/messages file:///mnt/yadisk /restore/var/log/messages

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

Проверка и удаление бэкапов duplicity

Приведу еще несколько полезных команд для проверки бэкапов.

Посмотреть информацию о бэкапах в заданном каталоге:

duplicity collection-status --no-encryption file:///mnt/yadisk

Проверка бэкапов

Проверить содержимое бэкапа и сравнить с оригиналом:

duplicity verify --no-encryption file:///mnt/yadisk /

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

Посмотреть список файлов в архиве:

duplicity list-current-files --no-encryption file:///mnt/yadisk/duplicity

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

duplicity --no-encryption remove-older-than 1M file:///mnt/yadisk

Чтобы удалить все бэкапы, кроме последнего, подойдет команда:

duplicity --no-encryption remove-all-but-n-full 1 --force file:///mnt/yadisk

На этом все, основные моменты я рассказал. Для бэкапа сервера или отдельных папок этого достаточно.

Заключение

Я рассмотрел малую часть функционала дуплисити. Большим ее плюсом является поддержка всевозможных удаленных хранилищ для бэкапа: ftp, ssh, различные облачные хранилища и другое. Хорошим преимуществом так же является возможность шифровать свои бэкапы. Мне пока нет надобности все это использовать, поэтому я рассмотрел только свой частный случай.

Онлайн курс по Linux

Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, рекомендую познакомиться с онлайн-курсом «Администратор Linux» в OTUS. Курс не для новичков, для поступления нужны базовые знания по сетям и установке Linux на виртуалку. Обучение длится 5 месяцев, после чего успешные выпускники курса смогут пройти собеседования у партнеров. Что даст вам этот курс:
  • Знание архитектуры Linux.
  • Освоение современных методов и инструментов анализа и обработки данных.
  • Умение подбирать конфигурацию под необходимые задачи, управлять процессами и обеспечивать безопасность системы.
  • Владение основными рабочими инструментами системного администратора.
  • Понимание особенностей развертывания, настройки и обслуживания сетей, построенных на базе Linux.
  • Способность быстро решать возникающие проблемы и обеспечивать стабильную и бесперебойную работу системы.
Проверьте себя на вступительном тесте и смотрите подробнее программу по .

Помогла статья? Есть возможность отблагодарить автора

Автор Zerox

Zerox
Владимир, системный администратор, автор сайта. Люблю настраивать сервера, изучать что-то новое, делиться знаниями, писать интересные и полезные статьи. Открыт к диалогу и сотрудничеству.

3 комментария

  1. Аватар

    При помощи дупликати можно ли будет бекапить целиком сервер с почтой (postfix + dovecot + mysql) или придется еще что то дополнительно добавлять. И какими средствами вы сами бэкапите почтовый сервер. И если не сложно, сколько ориентировочно понадобится для организации двух недельного бэкапа если почтовый сервер вместе с почтой пользоватлей максимум будет весить 150 гигов.

    • Zerox

      Если почта в формате maildir, я ее бэкаплю с помощью rsync с сохранением ежедневных изменений. Подробнее об этом написал в отдельной статье — https://serveradmin.ru/rsync-nastroyka-bekapa-na-centos-debian-ubuntu/
      Размер инкрементного бэкапа будет зависеть от объема ежедневной переписки. Но обычно она не очень большая. Если вся почта пользователей весит 150 гигов, то вряд ли там в день больше 500 мегов набегает.

  2. Аватар

    при извлечении получаю ошибку duplicity: error: Bad time string «‘file://****»
    это блин что такое, нигде найти не могу

Добавить комментарий

Ваш e-mail не будет опубликован.

Нажимая кнопку "Отправить комментарий" Я даю согласие на обработку персональных данных.