1. Главная страница » Компьютеры

Centos 7 резервное копирование и восстановление

Автор: | 16.12.2019

Рассмотрим команды для резервного копирования базы данных сайта на mysql через SSH и дальнейшего ее восстановления.

Бывает, что необходимо сделать резервную копию базы данных сайта, а подручные средства не справляются по ряду причин, например, сталкивался, что база весила более 10 гигов, а phpmyadmin выбивал 502 ошибку. Тогда делал резервную копию через ssh.

Команды для работы с резервным копированием и восстановлением.

Предложение от 8host.com

Данное руководство научит создавать резервные копии удаленного хоста CentOS 7 с помощью Bacula. Вы узнаете, как установить Bacula Client на удаленный хост и откорректировать настройки существующего хоста Bacula Server.

Требования

  • Компоненты Bacula Server, установленные согласно этому руководству.
  • Частная сеть для взаимодействия клиента и сервера Bacula.
  • FQDN серверов должен указывать на внутренний IP-адрес. Если у вас нет соответствующих настроек DNS, вместо этого можно использовать IP-адреса серверов.
  • В руководстве используются условные данные: сервер Bacula будет называться BaculaServer, или сервер бэкапа; удаленные хосты называются ClientHost, или клиенты бэкапа.

Настройка Bacula Director

Перейдите на BaculaServer.

При настройке сервера Bacula вы, возможно, заметили, что файлы конфигурации слишком длинные. Попытаемся немного систематизировать конфигурацию Bacula Director. Создайте отдельные файлы для добавления новой конфигурации, например заданий, наборов файлов и пулов.

Создайте каталог для конфигурационных файлов Bacula:

Читайте также:  Lrt ru личный кабинет

sudo mkdir /etc/bacula/conf.d

Откройте конфигурационный файл Bacula Director:

sudo vi /etc/bacula/bacula-dir.conf

В конец файла вставьте строку:

@|"find /etc/bacula/conf.d -name ‘*.conf’ -type f -exec echo @<> ;"

Сохраните и закройте файл. Теперь Director сможет искать дополнительные настройки в других файлах каталога /etc/bacula/conf.d. Любой файл с расширением .conf будет восприниматься как часть конфигурации.

Пул RemoteFile

Добавьте в настройку Bacula Director новый пул для резервного копирования удаленных серверов.

sudo vi /etc/bacula/conf.d/pools.conf

Добавьте ресурс Pool:

Pool <
Name = RemoteFile
Pool Type = Backup
Label Format = Remote-
Recycle = yes # Bacula can automatically recycle Volumes
AutoPrune = yes # Prune expired volumes
Volume Retention = 365 days # one year
Maximum Volume Bytes = 50G # Limit Volume size to something reasonable
Maximum Volumes = 100 # Limit number of Volumes in Pool
>

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

Пока что перезапускать Bacula Director не нужно. Просто убедитесь, что в файле нет ошибок.

sudo bacula-dir -tc /etc/bacula/bacula-dir.conf

Установка и настройка Bacula Client

Примечание: Этот раздел нужно выполнить на всех клиентах бэкапа.

Установите пакет bacula-client.

sudo yum install bacula-client

Эта команда установит File Daemon (FD).

Настройка клиента

Перед настройкой File Daemon нужно иметь в виду следующую условную информацию, которая будет использоваться в течение оставшейся части этого руководства:

  • Имя хоста клиента: ClientHost.
  • FQDN клиента: client_private_FQDN (в формате clienthost.private.example.com).
  • Имя сервера Bacula: BackupServer

Эти условные данные нужно заменять своими данными.

Далее нужно будет добавить в настройки File Daemon пароль, который позволит Bacula Director подключиться нему. Сгенерируйте случайный пароль (можно пропустить этот шаг и создать свой собственный пароль):

date +%s | sha256sum | base64 | head -c 33 ; echo

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

Откройте конфигурационный файл File Daemon:

sudo vi /etc/bacula/bacula-fd.conf

В нем нужно изменить несколько элементов и найти информацию, которая понадобится для дальнейшей конфигурации сервера.

Найдите ресурс Director с именем вашего клиентского хоста (например, ClientHost-dir). Измените значение параметра Name и укажите в нем имя хоста сервера бэкапа с суффиксом –dir. Например:

Director <
Name = BackupServer-dir
Password = "Y2Q5ODUyMWM0YTFhYjA3NTcwYmU5OTA4Y"
>

Затем нам нужно откорректировать один параметр в ресурсе FileDaemon. Измените параметр FDAddress, укажите в нем FQDN клиентской машины. Параметр Name уже должен содержать правильное имя демона FD клиента. Ресурс должен выглядеть примерно так (замените условные данные):

FileDaemon < # this is me
Name = ClientHost-fd
FDAddress = client_private_ip
FDport = 9102 # where we listen for the director
WorkingDirectory = /var/spool/bacula
P > Maximum Concurrent Jobs = 20
>

Также необходимо настроить демон для передачи сообщений логов на сервер резервного копирования. Найдите ресурс Messages и измените параметр director; укажите в нем имя хоста сервера бэкапа с суффиксом -dir. Ресурс должен выглядеть примерно так:

Messages <
Name = Standard
director = BackupServer-dir = all, !skipped, !restored
>

Сохраните и закройте файл. Клиент и File Daemon настроены.

Проверьте ошибки в файле:

sudo bacula-fd -tc /etc/bacula/bacula-fd.conf

Если команда не сообщила вам об ошибках, значит, в файле их нет.

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

sudo systemctl restart bacula-fd

Теперь настройте каталог, в котором Bacula Server сможет хранить восстановленные файлы. Создайте структуру каталогов и заблокируйте доступ к ней:

sudo mkdir -p /bacula/restore
sudo chown -R bacula:bacula /bacula
sudo chmod -R 700 /bacula

Добавление файлов FileSet

Примечание: Данный раздел нужно выполнить на сервере.

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

Если вы выполнили руководство по установке Bacula Server, у вас уже есть FileSet по имени Full Set. Если вы хотите, чтобы система Bacula копировала почти все файлы системы, можете использовать этот FileSet в задачах. Но обычно для восстановления не нужно иметь бэкап всех файлов, потому этот набор желательно сократить, чтобы сэкономить дисковое пространство.

Тщательный отбор файлов, включенных в FileSet, экономит не только объем дискового пространства, но и время, требуемое для запуска задания резервного копирования. Это также может упростить восстановление, поскольку вам не нужно просматривать весь Full Set, чтобы найти файлы, которые нужно восстановить.

Попробуйте создать новые ресурсы FileSet.

На сервере Bacula откройте файл filesets.conf в конфигурационном каталоге Bacula Director:

sudo vi /etc/bacula/conf.d/filesets.conf

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

FileSet <
Name = "Home and Etc"
Include <
Options <
signature = MD5
compression = GZIP
>
File = /home
File = /etc
>
Exclude <
File = /home/bacula/not_important
>
>

  • Имя FileSet должно быть уникальным.
  • В FileSet нужно указать все файлы или разделы, бэкап которых нужно выполнить.
  • Чем меньше в FileSet лишних и ненужных файлов, тем продуктивнее резервное копирование.
  • Количество FileSet не ограничено.

Добавление задач Client и Backup на сервер Bacula

Чтобы добавить клиентский хост в настройки сервера Bacula, создайте в настройках Bacula Director новые ресурсы – Client и Job.

sudo vi /etc/bacula/conf.d/clients.conf

Добавление ресурса Client

Ресурс Client предоставляет Director информацию, необходимую ему для подключения к хосту клиента. Сюда входят имя, адрес и пароль File Daemon клиента.

Вставьте в файл этот ресурс Client.

Client <
Name = ClientHost-fd
Address = client_private_FQDN
FDPort = 9102
Catalog = MyCatalog
Password = "Y2Q5ODUyMWM0YTFhYjA3NTcwYmU5OTA4Y" # password for Remote FileDaemon
File Retention = 30 days # 30 days
Job Retention = 6 months # six months
AutoPrune = yes # Prune expired Jobs/Files
>

Примечание: Замените условные данные.

Создание задачи Backup

Задача Backup определяет клиента и файлы, которые нужно скопировать. Имя задачи должно быть уникальным.

Вставьте задачу в файл conf.d/clients.conf.

Job <
Name = "BackupClientHost"
JobDefs = "DefaultJob"
Client = ClientHost-fd
Pool = RemoteFile
FileSet="Home and Etc"
>

Это создаст задачу резервного копирования под названием BackupClientHost, которая будет поддерживать резервные копии домашнего каталога и каталога etc хоста клиента, как определено в FileSet под названием Home and Etc. Задача будет использовать настройки, указанные в ресурсе JobDefs по имени DefaultJob и в RemoteFile по имени DefaultJob, которые определены в основном файле bacula-dir.conf. По умолчанию задачи с параметром JobDefs = «DefaultJob» будут выполняться еженедельно.

Сохраните и закройте файл.

Проверка настроек Bacula Director

Убедитесь, что в файле Bacula Director нет ошибок:

sudo bacula-dir /etc/bacula/bacula-dir.conf

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

Перезапуск Bacula Director

Чтобы обновить настройки, перезапустите Bacula Director.

sudo systemctl restart bacula-dir

Теперь сервер Bacula сможет создавать резервные копии удаленного хоста.

Тестирование подключения клиента

Теперь нужно убедиться, что Bacula Director может подключиться к клиенту Bacula.

На сервере Bacula откройте консоль Bacula:

sudo bconsole
status client
Select Client resource: ClientHost-fd
The defined Client resources are:
1: BackupServer-fd
2: ClientHost-fd
Select Client (File daemon) resource (1-2): 2

Команда должна сразу отобразить состояние File Daemon клиента. Если этого не произошло и возникла ошибка, проверьте настройки клиента и сервера Bacula.

Запуск тестовой задачи

Запустите задачу на сервере Bacula.

Команда предложит выбрать задачу, которую нужно запустить. Выберите одну из задач, например 4.

Select Job resource: BackupClientHost
The defined Job resources are:
1: BackupLocalFiles
2: BackupCatalog
3: RestoreLocalFiles
4: BackupClientHost
Select Job resource (1-4): 4

Confirmation prompt:
OK to run? (yes/mod/no): yes

Проверка сообщений и состояния

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

Чтобы проверить сообщения, введите:

В сообщениях должно быть указано «No prior Full backup Job record found» и что задача резервного копирования запустилась. Если при запуске задачи что-то пошло не так, в сообщениях вы найдете подсказки по устранению неполадок.

Также вы можете узнать состояние задачи. Для этого нужно запросить состояние Director. Введите в bconsole:

Состояние OK значит, что задача выполнена успешно.

Восстановление данных

Создав резервную копию, важно проверить ее восстановление. Команда restore позволяет восстанавливать скопированные файлы.

Введите в Bacula Console:

На экране появится меню, в котором можно выбрать резервный набор, который необходимо восстановить. Поскольку у вас есть только одна резервная копия, выберите вариант 5, «Select the most recent backup»:

Select item (1-13):
5

Затем будет предложено выбрать клиента. Выберите удаленный хост ClientHost-fd.

Select the Client: ClientHost-fd
Defined Clients:
1: BackupServer-fd
2: ClientHost-fd
Select the Client (1-2): 2

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

Поскольку для восстановления использовалась команда restore all, все скопированные файлы уже выбраны. Файлы, которые входят в список восстанавливаемых, отмечены звездочкой *.

Чтобы откорректировать список файлов, вы можете перемещаться и просматривать содержимое с помощью команд cd и ls, а также добавлять и исключать файлы с помощью команд mark и unmark.

Чтобы получить полный список команд, введите help.

Выбрав все необходимые файлы, введите:

OK to run? (yes/mod/no):
yes

Проверка сообщений и состояния

Как и после резервного копирования, после восстановления нужно проверить сообщения и состояние Director.

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

Проверьте состояние Director:

Чтобы закрыть Bacula Console, введите:

Если восстановление прошло правильно, вы найдете файлы в каталоге /bacula/restore на клиенте. После тестирования восстановленные файлы можно удалить.

Заключение

Теперь у вас есть сервер и клиент Bacula. Вы можете самостоятельно отладить FileSet, чтобы обеспечить своевременное резервное копирование всех необходимых файлов.

Средства для резервного копирования информации можно разделить на несколько категорий:
— Для домашнего/офисного применения (резервирование важных документов, фотографий и пр. на NAS либо в облако);
— Для средних и крупных (offline) предприятий (резервирование важных документов, отчетности, баз данных и пр. как на серверах так и на рабочих станциях сотрудников);
— Для малых веб-проектов (резервирование файлов и баз данных с хостинговой площадки либо VPS/VDS на удаленный хост (или наоборот));
— Для крупных веб-проектов с распределенной архитектурой (почти то же самое, что и на offline-предприятиях только с учетом работы в глобальной сети, а не локальной, и как правило с использование open source средств).

С программными продуктами для дома и офиса все достаточно просто есть масса решений как открытых так и проприетарных, от cmd/bash скриптов до решений известных производителей ПО.
В enterprise секторе все достаточно скучно есть масса программных продуктов которые давно и успешно работают на многих предприятиях, в крупных банках и пр, рекламировать никого не будем. Многие из этих продуктов хорошо упростили жизнь системных администраторов, за достаточно «скромные деньги» по меркам некоторых предприятий.
В данной статье более подробно рассмотрим open source решения для резервного копирования веб-проектов разного масштаба, а также проведем тест на скорость резервирования файлов.
Статья будет полезна веб-мастерам, небольшим веб-студиям, ну и возможно даже бывалый админ найдет здесь что-то полезное.

Что нужно для резервирования небольшого сайта или блога, или нескольких сайтов, например с VPS-ки на которой дискового пространства впритык?
Напрашивается резервирование на удаленный хост. Т.е. чтобы сэкономить драгоценное место на вашем хостинге или VPS, вы можете подключаться, например со своего домашнего/офисного компьютера (возможно у вас есть NAS), по протоколам ftp или sftp, вручную или по расписанию забирать файлики и бережно складывать их каком-то надежном месте. Сойдет любой клиент ftp или sftp, хороший вариант rsync.

С Rsync выглядит это примерно так:
rsync -avzPch user@remote.host:/path/to/copy /path/to/local/storage

И это вроде бы неплохо, но что если нужно хранить несколько версий бекапов БД? Или по каким-то причинам понадобилось делать инкрементальные копии, а еще бы неплохо и шифрование добавить. Можно немножко посидеть и сделать хороший велосипед скрипт под свои нужды (например наш rsync-backup), либо взять что-то из готовых утилит.

Рассмотрим несколько утилит которые подойдут для различных случаев применения, в частности и для случая описанного выше.

Duplicity консольная утилита для резервного копирования с достаточно широкими возможностями.
Существует несколько графических оболочек для Duplicity — Deja-dup для среды Gnome и test-drive для KDE. Также существует консольная обертка duply.

Duplicity производит бекап в зашифрованные тома в tar-формате локально или на удаленный хост. Делать инкрементальные записи файлов позволяет библиотека librsync, для компрессии используется gzip и gpg делает шифрование.
Конфигурационного файла нет. Автоматизировать процесс резервирования придется самому.

Резервирование локальной папки на удаленный хост
duplicity /usr scp://host.net/target_dir
Резервирование с удаленного хоста в локальную папку
duplicity sftp://user@remote.host/var/www /home/backup/var/www
Восстановление
duplicity restore /home/backup/var/www sftp://user@remote.host/var/www

Про Duplicity уже были статьи на Хабре, поэтому не будем заострять на ней внимание.

Про rsnapshot также не мало сказано на Хабре, тут и тут. А здесь еще хорошая статья. Rsnapshot в целом, хороший инструмент для создания инкрементальных бекапов (снапшотов). Написан на perl, использует rsync для копирования файлов. Достаточно быстрый (быстрее rdiff-backup) и неплохо экономит место на диске за счет жестких ссылок. Умеет делать pre и post-backup операции, не умеет (без костылей) шифровать и делать бекап на удаленный хост. Файлы хранятся в первозданном виде — легко восстанавливать. Достаточно удобно организовано конфигурирование. Поддерживает несколько временных уровней резервирования (дневной, недельный, месячный). Есть достаточно активное сообщество.

После того как вы пропишете в конфиге необходимые строки (что бекапить и куда), можно запустить бекап:
rsnapshot -v hourly
По умолчанию будет храниться несколько ежечасных и дневных снапшотов. От прочих утилит Rsnapshot отличается тем что он из коробки автоматизирован (актуально для Debian/Ubuntu), т.е. в крон пропишутся необходимые строки, а в конфиге прописано резервирование каталогов "/home", "/etc", "/usr/local"

Rdiff-backup очень похож на Rsnapshot, но в отличии от него написан на Python и использует библиотеку librsync для передачи данных. Умеет копировать файлы на удаленный хост, чем кстати мы довольно успешно пользовались и кое где еще пользуемся. Также можно делать бекап с удаленного хоста, но предварительно нужно установить там Rdiff-backup. Хранит информацию об изменениях файлов (дельты) в сжатом виде, хорошо для больших файлов, позволяет экономить место на диске даже по сравнению с rsnapshot.
Метаданные (права, даты, владелец) хранятся в отдельных файлах.
Запуск бекапа производится из консоли:
rdiff-backup remote.host::/home/web/sites/ /home/backup/rdiff/
Наличие конфигурационного файла не предполагается. Автоматизировать придется самому.

Obnam — открытое клиент-серверное приложение для резервного копирования, код программы написан на языке Python для передачи данных используется протокол SSH. Может эксплуатироваться в двух видах:
— Push резервирование с локального хоста на удаленный сервер на котором работает демон Obnam.
— Pull демон сам забирает файлы с удаленных хостов по протоколу ssh. В этом случае клиент Obnam не нужен.
Умеет делать снапшоты, дедупликацию и шифрование GnuPG. Резервные копии файлов хранятся в томах. Метаданные хранятся в отдельных файлах. Восстановление производится через консоль.

Небольшая выдержка из описания на Opennet (http://www.opennet.ru/opennews/art.shtml?num=39323):
«Предлагаемый в Obnam подход к резервному копированию нацелен на достижение трёх целей: обеспечение высокой эффективности хранения, простоты использования и безопасности. Эффективность хранения достигается благодаря размещению резервных копий в специальном репозитории, данные в котором хранятся в оптимальном представлении с использованием дедупликации. В одном репозитории могут храниться бэкапы разных клиентов и серверов. При этом объединение дубликатов осуществляется для всех хранимых бэкапов, независимо от их типа, времени создания и источника резервной копии. Для проверки целостности репозитория и его восстановления после сбоя предоставляется специальный вариант утилиты fsck.

Если на группе серверов используется одинаковая операционная система, то в репозитории будет сохранена только одна копия повторяющихся файлов, что позволяет существенно сэкономить дисковое пространство при организации резервного копирования большого числа типовых систем, например, виртуальных окружений. Репозиторий для хранения резервных копий может быть размещён как на локальном диске, так и на внешних серверах (для создания сервера для хранения резервных копий не требуется установка дополнительных программ, достаточно доступа по SFTP). Возможен доступ к резервным копиям через монтирование виртуального раздела при помощи специально подготовленного FUSE-модуля.»

Все это хорошо, НО для копирования на удаленный хост используется scp со всеми вытекающими.

Bacula — кроссплатформенное клиент-серверное программное обеспечение, позволяющее управлять резервным копированием, восстановлением, и проверкой данных по сети для компьютеров и операционных систем различных типов. На данный момент Bacula можно использовать практически на любых unix-подобных системах (Linux (включая zSeries), NetBSD, FreeBSD, OpenBSD, Solaris, HP-UX, Tru64, IRIX, Mac OS X) и на Microsoft Windows.

Bacula также может выполняться полностью на единственном компьютере или, распределённо, на нескольких, и может записывать резервные копии на различные типы носителей, включая ленты, ленточные библиотеки (autochangers/libraries) и диски.

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

К Bacula имеются GUI и веб-интерфейсы (Almir, Webmin) различной степени сложности.

Некоторое время назад мне пришлось сильно и безрезультатно повозится с Almir чтобы запустить его на Debian Wheezy.

Bacula это надежная проверенная временем система резервного копирования в том числе хорошо зарекомендовавшая себя на многих крупных предприятиях. От Obnam принципиально Bacula отличается схемой работы. В случае варианта клиент-сервер Bacula будет являться 100% централизованной системой. Также необходимо наличие клиентского приложения на хосте который нужно бекапить. На сервере работают одновременно три демона SD, FD. DIR — Storage Daemon, File Daemon и Director соответственно. Нетрудно догадаться кто за что отвечает.

Резервные копии файлов Bacula хранит в томах. Метаданные хранятся в БД (SQLite, MySQL, PostgreSQL) Восстановление производится с помощью консольной утилиты либо посредством графической оболочки. Процесс восстановления через консоль, прямо скажем, не самый удобный.

Цифры
Я решил проверить скорость резервирования небольшой папки (626M) с несколькими сайтами на WP.
Для этого я даже не поленился развернуть и настроить весь этот софт. 🙂
Тест состоит из двух частей:
1. Участники Duplicity, Rsync, Rsnapshot, Rdiff-Backup. Копируем с удаленного сервера на домашний компьютер, при этом поскольку Rsnapshot не умеет делать remote-бекап, то он и Rdiff-backup (для сравнения) будут работать домашней машине, т.е. будут тянуть (pull) с файлы с сервера, а остальные наоборот, будут толкать (push) на домашнюю машину.
Все утилиты запускались с минимально необходимыми опциями.

Rsync
rsync -az /home/web/sites/ home.host:/home/backup/rsync
Full backup
Время выполнения:

Incremental
Время выполнения

Занимаемое место:
626M /home/backup/duplicity/

Duplicity
duplicity full /home/web/sites/ rsync://home.host//home/backup/duplicity
Full backup
Время выполнения:

Incremental
Время выполнения

Занимаемое место:
450M /home/backup/duplicity/

Rsnapshot
rsnapshot -v hourly
Full backup
Время выполнения:

Incremental
Время выполнения

Занимаемое место:
626M /home/tmp/backup/rsnap/

Rdiff-backup
rdiff-backup remote.host::/home/web/sites/ /home/backup/rdiff/
Full backup
Время выполнения:

Incremental
Время выполнения

Занимаемое место:
638M /home/backup/rsnap/

Результаты достаточно предсказуемы. Самый быстрый оказался Rsync, практически такой же результат у Rsnapshot. Duplicity немного медленней но меньше занимает места на диске. Rdiff-backup ожидаемо хуже.

2. Теперь интересное. Проверим как работают Obnam и Bacula. Оба решения достаточно универсальны плюс имеют некоторые сходства. Посмотрим кто шустрее.
Obnam
Первый раз я запустил копирование с удаленного хоста на свой домашний, ждать пришлось долго:
obnam backup —repository sftp://home.host/home/backup/obnam/ /home/web/sites/
Full backup
Backed up 23919 files, uploaded 489.7 MiB in 1h42m16s at 81.7 KiB/s average speed
Время выполнения:

obnam backup —repository sftp://home.host/home/backup/obnam/ /home/web/sites/
Incremental
Backed up 23919 files, uploaded 0.0 B in 3m8s at 0.0 B/s average speed
Время выполнения

Занимаемое место:
544M /home/tmp/backup/rsnap/
Не очень хороший результат как мне кажется, хотя понятный.
Попробуем второй раз, но уже на соседний сервер по гигабитной сети и добавим компрессию.
obnam backup —compress-with=deflate —repository sftp://remote.host/home/backup/obnam/ /home/web/sites/
Full backup
Backed up 23919 files, uploaded 489.7 MiB in 2m15s at 3.6 MiB/s average speed
Время выполнения:

obnam backup —compress-with=deflate —repository sftp://remote.host/home/backup/obnam/ /home/web/sites/
Incremental
Backed up 23919 files, uploaded 0.0 B in 8s at 0.0 B/s average speed
Время выполнения

Занимаемое место:
434M /home/tmp/backup/rsnap/
Так побыстрее и размер бекапа поменьше. Шифрование я не стал пробовать, может быть позже, если будет время.

Bacula
Для Bacula я подготовил полноценный клиент-сервер вариант. Клиент и сервер в одной гигабитной сети.
Задание я запустил в фоновом режиме и пошел пить чай. Когда вернулся обнаружил, что уже все готово, а в логе следующее:

Я даже немного удивился. Все сделалось за 13 секунд, следующий запуск прошел за одну секунду.

Итого
С помощью rsnapshot вы можете легко решить задачу резевного копирования файлов и БД (c дополнительным скриптом) вашего VPS на ваш домашний компьютер/ноутбук/NAS. Также неплохо rsnapshot справится с небольшим парком серверов 10-25 хостов (можно и больше конечно, зависит от вашего желания). Rdiff будет хорош для бекапа больших файлов (Видео-контент, базы данных и пр.)
Duplicity поможет не только сохранить ваши данные в целости но защитить их в случае кражи (к сожалению от себя самого защититься нельзя, будьте внимательны и осторожны, храните ключи в надежном и недоступном никому постороннему месте).
Bacula — open source промышленный стандарт, поможет держать в сохранности данные большого парка компьютеров и серверов любого предприятия.
Obnam интересный инструмент имеющих ряд полезных достоинств, но я пожалуй рекомендовать никому не буду.
Если же, вас все таки, по каким-то причинам, не устраивает ни одно из этих решений, не стесняйтесь изобретать свои велосипеды. Это может стать полезным как для вас лично, так и для многих людей.

UPD: Небольшая сводная таблица:

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

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *