Топ 12 бесплатных программ для бэкапа
Существует большое количество бесплатных программ для бэкапа информации. В своём telegram канале https://t.me/srv_admin я делал небольшие обзоры на множество из них. Решил составить список из 12-ти наиболее популярных и функциональных, чтобы удобно было выбрать подходящую. Все программы опробованы и прокомментированы лично мной. Со временем список пополнялся, так что теперь это уже не 12 программ для бэкапа, а значительно больше.
На углубленном курсе «Архитектура современных компьютерных сетей» вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.
Veeam Agent for Windows or Linux Free
С его помощью можно бэкапить как целиком весь компьютер, так и отдельные диски и папки. После установки он создаст загрузочный диск, с помощью которого можно будет восстановить систему и залить бэкап, если совсем всё умрет. Поддерживает хранение бэкапов локально, на smb шарах, на usb устройствах. При подключении последнего может автоматом запускать бэкап.
Свой ноут лично я бэкаплю им же. Много раз уже выручал, так что рекомендую. Традиционно, софт от Veeam работает качественно и просто. Не надо долго разбираться с настройками. Так что добавить особо нечего. Берите и пробуйте. Работает как на Windows, так и Linux.
https://www.veeam.com/linux-backup-free.html
https://www.veeam.com/windows-endpoint-server-backup-free.html
Kopia
В первую очередь это open source продукт — https://github.com/kopia/kopia. Поддерживает все популярные системы (Win, Lin, Mac). Есть как GUI, так и CLI. И это очень круто, так как расширяет область применения до бесконечности. Хочешь автоматизируй скриптами, не умеешь — ставь GUI под виндой и тыкай мышкой.
В качестве хранилища для бэкапов поддерживает основных облачных провайдеров (S3, GCS, Azure) а так же webdav, rclone, локальное хранилище и sftp. Последнее особенно понравилось. Можно взять любой сервер с ssh и организовать там репозиторий для бэкапов. Также есть возможность настроить свой Repository Server, который будет выступать в качестве прокси к основному репозиторию, что позволит более гибко управлять правами и доступом.
Я лично проверил следующую модель бэкапов. Взял linux сервер в качестве репозитория, настроил на нем доступ к ssh по ключам. Взял Windows, установил Kopia с GUI, подключил репозиторий по sftp и настроил создание бэкапов определенной директории в этот репозиторий.
Затем взял еще один Linux сервер. Установил на него Kopia (просто скачал бинарник) и подключил этот же репозиторий. Настроил в него бэкап данных с этого сервера. В итоге я имею 2 разных сервера, которые бэкапят данные в единый репозиторий. С обоих серверов есть доступ к бэкапам друг друга.
Бэкапы шифруются, настройки хранятся в json. Есть возможность настроить расписание, исключения, время хранения снепшотов. В общем, все, что нужно для построения распределенной системы бэкапов разнородных систем. И все это бесплатно. Работает вроде неплохо. Мне очень понравилось. В первую очередь возможностями кастомизации и применения во множестве различных сценариев.
Работа в GUI:
https://www.youtube.com/watch?v=sHJjSpasWIo
Работа в CLI:
https://asciinema.org/a/ykx6uzEhKY3451fWEnX9nm9uo
Burp
Автор на своём сайте целый раздел написал на тему того, зачем он начал разрабатывать Burp, если есть такая замечательная Bacula, которой он сам пользовался. Если кратко — Бакула слишком сложная для простых задач. Он решил написать что-то похожее, но значительно проще.
Burp написан на языке C с использованием librsync (значит синхронизирует файлы быстро) и имеет клиент-серверную архитектуру. Сервер ставится на linux, клиенты есть под linux, windows, mac. Разрабатывается активно уже в течении более чем 10-ти лет.
Burp поддерживает создание репозиториев для бэкапа, дедупликацию, шифрование, сжатие, планирование, оповещения и т.д. В общем, полноценная система бэкапа. Умеет выдавать свой статус в json, можно разворачивать с помощью ansible, есть готовые роли. Так что с молодёжностью все в порядке, несмотря на то, что проект достаточно старый.
Отдельный персонаж написал веб интерфейс для Burp. Живет тут — https://git.ziirish.me/ziirish/burp-ui.
Любопытная система бэкапа. Мне приглянулась в первую очередь тем, что она на базе rsync сделана, плюс файлы хранятся в открытом виде. По бэкапам можно тем же find лазить при желании, если они не зашифрованы.
Syncthing
Syncthing работает по принципу торрент клиентов. В режиме реального времени синхронизируются данные всех клиентов, которые пожелали синхронизировать какую-то директорию. Клиенты есть под все популярные системы, в том числе на смартфонах.
Работает примерно так. Ставите клиент на какую-то систему и добавляете туда папку для синхронизации. Клиент автоматически связывается с публичными централизованными релеями или серверами-анонсерами. Их можно поднимать свои. Клиенту назначается уникальный id.
Далее такой же клиент ставится на другую систему. Он так же регистрируется в общей сети и получает свой id. Дальше на первом клиенте вы добавляете по id в доверенные системы второй и расшариваете для него папку. На втором клиенте вы видите, что вас добавили и добавляете это устройство в доверенные к себе. А так же принимаете от первого клиента директорию для синхронизации.
И всё! После этого начинается двухсторонняя синхронизация этой директории. Сюда же можно добавить еще несколько систем. Таким образом все они будут синхронизировать одну и ту же директорию. Если вы не хотите соединяться через публичные релеи, можете поднять свой. Любо просто настраивать подключения по ip.
Система мне понравилась, ставил на винду. Настроил и разобрался быстро. Интересный принцип синхронизации. Не знаю, насколько надежно и быстро будет работать. Подозреваю, что при большом количестве файлов могут быть проблемы, как и у всех программ подобного рода. Тысяч 500 файлов загрузить и все повиснет или будет куча конфликтов. Но для не сильно больших объемов и количества файлов по идее должно работать нормально. Можно так свои файлы между устройствами шарить.
Borgbackup или Borg
Чем привлек конкретно Borg и почему обратил на него внимание:
- Простая установка и настройка. По сути это просто один бинарник. Ничего дополнительно, типа базы данных, ставить не надо. Работает на всех системах Linux, MacOS. Поддержки винды нет.
- Эффективная и честная дедупликация, ну и сжатие до кучи разными алгоритмами.
- Работает по ssh. Соответственно, не надо ничего настраивать на хостах, ставить агент и т.д. Ssh чаще всего есть везде.
- Гибкий в плане автоматизации с помощью скриптов. Отлично подходит для любителей костылей и велосипедов, как я.
Сам я по-прежнему бэкаплю все с помощью rsync и самописной обвязки в виде bash. Реализовано, все, что мне обычно требуется — полные, инкрементные бэкапы, мониторинг.
Хочется избавиться от своих велосипедов, но найти что-то, что на 100% меня устроило, не получается. Я внимательно посмотрел на Borg, попробовал. В целом, все круто и удобно. Дедупликация отлично работает, diff бэкапы делаются очень быстро.
Но всплывает одна особенность всех бинарных бэкапов с дедупликацией, типа borg. Допустим, у вас есть большой архив данных, ну скажем на 1-2 Тб с 500 000 файлов. Чтобы просто сделать листинг файлов в таком бэкапе уйдет очень много времени. Если же у меня обычный бэкап данных через rsync, я делаю это практически мгновенно.
И еще один минус конкретно Borg. Он сохраняет права файлов, когда вы делаете полный бэкап. Но потом, если вы восстановите отдельный файл, его права не будут восстановлены, так как они хранятся условно в полном бэкапе. Чтобы восстановить и права файлов, надо сделать полное восстановление. Где-то не не принципиально, а где-то создаст много неудобств.
Моё резюме такое. Borg отличный консольный инструмент для бэкапов с честной дедупликацией и сжатием. Очень хорошо экономит место на дисках. Но имеет описанные выше минусы. Если вам они не критичны, можно пользоваться. Я для себя в итоге решил не использовать его. Пока останусь с rsync.
Если вас реально заинтересовал Borg, то посмотреть, как он работает, можно тут — https://www.borgbackup.org/demo.html Сразу получите практически полное представление о его работе. Я начал с того, что посмотрел все 4 demo ролика.
Clonezilla и Rescuezilla
Clonezilla это аналог коммерческих продуктов для снятия образов дисков и систем для бэкапа или переноса на другое железо, таких как Acronis True Image, Norton Ghost и т.д.
Она имеет консольный интерфейс для тру линуксоидов и любителей генту с арчем, а Rescuezilla более человеческий GUI для тех, кто привык тыкать мышкой.
Я сам неоднократно использовал Clonezilla для переноса системы с железа в виртуалку или между разными гипервизорами. Продукт хороший и известный, рекомендую, если еще не знакомы с ним.
Думаю, что в следующий раз, когда понадобится, предпочту GUI консоли. Так же одной из фишек Rescuezilla является то, что она может очень легко монтировать файлы резервных копий Clonezilla и получать к ним доступ.
BackupPC
Основные особенности BackupPC следующие:
- Управление через встроенный веб интерфейс.
- Кроссплатформенный, написан на perl.
- Поддержка дедупликации и сжатия.
- Работает поверх ssh, в том числе с помощью rsync, агенты ставить не надо.
- Умеет сам работать по smb.
- В работе использует механизм жестких ссылок (hardlinks).
Поставить на Centos и попробовать можно из epel:
# dnf install epel-release # dnf config-manager --set-enabled powertools # dnf install backuppc
Вместе с backuppc прилетит apache с готовым конфигом. Надо будет только юзера добавить для авторизации. Подробная инструкция по установке есть тут. Я по ней поставил. А дальше полез в документацию и немного прифигел. Думал это небольшая утилитка, но по факту BackupPC достаточно крупная и зрелая система бэкапа, с которой надо разбираться.
Не сказать, что там что-то сложное. Плюс, всё делается через веб интерфейс. Вам надо раскидать по хостам ssh ключ, по которому BackupPC будет ходить по клиентам. Потом добавить хосты в систему, настроить задачи для бэкапа и потом поставить их в планировщик.
В целом, выглядит всё очень любопытно и полезно. Плюс, под капотом достаточно известные линуксовые утилиты. То есть никакой внутренней магии. Как я понял, эта система подойдет тем, кто не хочет связываться с Bacula/Bareos, но при этом уже вырос из самописных скриптов и нужна централизация и автоматизация.
https://github.com/backuppc/backuppc
UrBackup
UrBackup — кроссплатформенная система бэкапа с управлением через встроенный веб интерфейс. Причем, что клиенты, что сервер могут быть подняты на разных системах, в том числе Windows и Linux.
Я для теста сервер поднял в Docker на Centos 8, а забэкапил с помощью клиента Windows систему. UrBackup позволяет делать резервные копии как системы целиком, так и отдельных директорий и файлов.
Это полноценная система резервного копирования. Она умеет разграничивать доступ по пользователям и интегрироваться с LDAP, рассылать оповещения о задачах, делать полные и инкрементные копии, поддерживает расписание и многое другое. То есть закрывает все базовые вопросы по бэкапу.
Попробовать систему проще простого. Как я уже сказал, запустил сервер в докере и сразу же зашёл через веб интерфейс. Команда на запуск:
# docker run -d --name urbackup-server-1 -v /mnt/backups:/backups -v /mnt/database:/var/urbackup -p 55413-55415:55413-55415 -p 35623:35623/udp uroni/urbackup-server
Интерфейс управления по адресу http://10.20.1.16:55414. Далее ставите на Windows клиента с помощью простого установщика и быстро там же настраиваете, что бэкапить. Потом возвращаетесь в веб интерфейс сервера и добавляете по ip адресу комп, куда клиент поставили.
И всё, сразу начинается бэкап с дефолтными настройками сервера. Можете заранее их посмотреть и поменять. Настраивается частота бэкапа, политика хранения и создания полных и инкрементных бэкапов и многое другое.
Есть русский язык как в клиенте, так и в сервере. По смыслу всё нормально переведено, но кое-где интерфейс кривоват: пробелов не хватает или разъезжается текст. В английской версии аккуратнее смотрится.
Система очень понравилась в первую очередь функционалом и простотой настройки. Особо красноглазить в консоли не надо. Все базовые потребности можно закрыть веб интерфейсом. По надежности и скорости работы ничего сказать не могу. Но судя по тому, как часто UrBackup рекомендуют, у него с этим всё в порядке.
Больше всего похоже на Kopia и BackupPC. Но на первый взгляд по функционалу, удобству и простоте превосходит их. Так что рекомендую.
Butterfly Backup
Butterfly Backup — небольшая консольная обёртка над rsync, написанная на python. Идея её в том, что она использует основное преимущество rsync — скорость сравнения и копирования информации. А так же добавляет некоторую гибкость, которой изначально в rsync нет. То есть расширяет его функционал.
Butterfly Backup избавляет от необходимости писать собственную bash обвязку вокруг rsync для организации инкрементных или разностных бэкапов. Так же упрощает восстановление и просмотр содержимого бэкапов. Для удобства можно подготовить готовый конфиг.
Основные возможности:
- Поддерживаемые бэкапы: Full, Incremental, Differential, Mirror.
- Использование центрального сервера для хранения бэкапов разных клиентов.
- Детальный просмотр содержимого отдельных бэкапов.
- Бэкап всей системы, а так же ее восстановление на другое железо или VM.
- Принцип снятия данных agent-less, по протоколу rsync или ssh.
Для работы BB нужен Python3. Далее достаточно скопировать репозиторий и запустить скрипт установки:
# git clone https://github.com/MatteoGuadrini/Butterfly-Backup.git # cd Butterfly-Backup # sudo python3 setup.py
После этого копируем rsa ключи, которые предварительно создали, на удаленный host, чтобы иметь к нему доступ:
# bb config --deploy host1
Дальше запускаем простой бэкап:
# bb backup --computer host1 --destination /mnt/backup --data System --type Unix
У bb есть преднастройки для типовых бэкапов трёх типов систем — Unix, Windows, MacOS. Если указать после ключа data тип данных и далее тип системы, то будет забэкаплено всё, что относится к этому типу. В моем примере это системные директории.
В документации можно посмотреть все основные возможности и ключи для бэкапа и восстановления.
https://github.com/MatteoGuadrini/Butterfly-Backup
DeltaCopy
Если вы любите rsync так же, как и я, и при этом хотите с его помощью бэкапить windows машины, то помочь вам в этом может программа DeltaCopy. Эта программа стала для меня настоящим открытием. Раньше я уже писал про rsync под windows. Там я описывал старую программу, о которой практически не осталось упоминаний в интернете. Нет сайта программы, нет обновлений. На текущий момент она брошена.
DeltaCopy вполне себе живая. Есть сайт, где можно скачать последнюю версию дистрибутива, есть исходники. Да и в целом мне эта программа понравилась за свою простоту и функциональность. Она состоит из двух независимых частей — клиента и сервера.
Клиент вам нужен будет, если вы хотите забирать по расписанию данные с другого Rsync сервера. Мне обычно это не нужно. Сервера чаще всего под Linux и именно с них хочется забирать данные Windows машин. Для этого используется серверная часть. У неё минимум настроек и все через интерфейс программы.
Для того, чтобы начать забирать данные с Windows через Rsync надо в серверной части настроить директорию с источником файлов. Если нужна встроенная авторизация, добавить пользователя и пароль. DeltaCopy сформирует простейший конфиг rsync:
use chroot = false strict modes = false [Backup] path = /cygdrive/c/tmp comment = Backup Drive read only = true auth users = zerox secrets file = /cygdrive/c/DeltaCopy/secrets/Backup.secret
Далее запускаем DeltaCopy как службу и не забываем настроить фаерволл. Надо открыть стандартный порт rsync — tcp 873. Перемещаемся на Linux сервер и забираем оттуда данные:
# rsync -avz zerox@10.20.1.57::Backup /mnt/backup
И всё. Работает четко и просто. Я попробовал, буду теперь использовать DeltaCopy для rsync на Windows.
http://www.aboutmyip.com/AboutMyXApp/DeltaCopy.jsp
Cobian Backup
Существует очень старая и известная программа для бэкапа систем под управлением Windows — Cobian Backup. Она полностью бесплатна и весьма функциональна для нулевой стоимости. Я проверил её работу на Windows 11. Несмотря на то, что программа старая, нормально работает даже на самой последней версии винды. Надо только .Net Framework 3.5 поставить.
Основные возможности программы:
- Умеет работать как служба, использует расписание.
- Использует shadow copy для создания бэкапов.
- Поддерживает различные схемы бэкапа: полный, инкрементный, разностный.
- Умеет сжимать архивы с помощью zip или 7zip, а также шифровать их.
- Может запускать скрипты перед или после бэкапа.
- Поддерживает управление через командную строку.
- Нормальный русский язык в интерфейсе.
- Подробный лог выполнения задач.
В общем, для бесплатной программы она очень удобна и функциональна. Бэкапить может только локально, либо на сетевые диски. А также на ftp. Не знаю, кто еще ftp использует в наши дни. Тем не менее, возможность есть. Если сравнивать с тем же бесплатным Veeam Agent for Microsoft Windows FREE, то Cobian Backup более функциональна.
Настройки программы простые и тривиальные. Разбираться много не придётся, тем более читать какую-то документацию (кто её вообще читает?). После установки сразу настроите бэкап и запустите.
https://www.cobiansoft.com/cobianbackup.html
FreeFileSync
Хочу порекомендовать вам очень удобную и функциональную программу для синхронизации файлов — FreeFileSync. По сути это аналог известной платной программы GoodSync, которую многие знают, но она платная. Работает FreeFileSync примерно так же, только полностью бесплатна, исходный код открыт.
Принцип работы FreeFileSync следующий. Выбираете в левой части окна программы одну директорию, в правой части другую и синхронизируете их. Можно настроить правила синхронизации и интервал. В качестве одной из сторон синхронизации может выступать не только локальная или сетевая директория, а облачный сервис google drive, sftp и ftp. То есть можно с Windows серверов лить данные на Linux по sftp.
Программа поддерживает консольный режим работы, исключения, работу в качестве службы, автозапуск по расписанию и многое другое. Это полноценный, многофункциональный продукт с регулярными обновлениями. Работает под Windows, Linux, MacOS.
Сайт — https://freefilesync.org
Обзор — https://www.youtube.com/watch?v=TThGBG_Z4N0
Rclone
Rclone — программа старая, удобная, популярная. Она есть под все известные ОС: Windows, macOS, Linux, FreeBSD, NetBSD, OpenBSD, Plan9, Solaris.
Я использую её исключительно в консоли Linux. Она есть в базовых репозиториях, так что ставится стандартно:
# apt install rclone # dnf install rclone
Самую свежую версию можно поставить вот так:
# curl https://rclone.org/install.sh | bash
Далее рисуем простой конфиг в файле ~/.config/rclone/rclone.conf:
[selectel] type = swift user = 79167_username key = uO6GdPZ97 auth = https://api.selcdn.ru/v3 tenant = 79167_username auth_version = 3 endpoint_type = public
Это пример для S3 хранилища от Selectel. Все учётные данные получите в ЛК. Я давно им пользуюсь. Когда выбирал, он был самым дешёвым. Сейчас не знаю как, не сравнивал. Для объёмов до 100 Гб там цены небольшие. За этот объём заплатите рублей 300 примерно (стандартное хранилище, холодное ещё дешевле), так что не критично. Рекомендую дублировать бэкапы сайтов, магазинов в S3. У меня это всегда второе, холодное хранилище, куда уезжают полные архивы с определённой периодичностью.
Бэкап директории /mnt/backup/day делается следующим образом:
# /usr/bin/rclone copy /mnt/backup/day selectel:websrv-day
Я обычно делаю 3 контейнера: day, week, month с настройкой хранения копий 7, 30 дней и бессрочно. Контейнер с месячными архивами чищу вручную время от времени, либо вообще не чищу. А первые два очищаются самостоятельно в соответствии со своими настройками. Следить самому за этим не надо. Если у вас это будет единственное хранилище, то очистку лучше настроить не по времени, а по количеству файлов в контейнере. Иначе если не уследите за бэкапами и они по какой-то причине не будут выполняться, через какое-то время все старые будут удалены, а новые не приедут.
В S3 от Selectel данные заходят очень быстро. Скорость до Гигабита в секунду. Скачивать редко приходится, так что не знаю, какая там реальная скорость, но проблем никогда не было. Думаю тоже что-то в районе гигабита, обычно сам интернет медленнее, куда грузить будете. Можно через панель управления зайти и открыть веб доступ к какому-нибудь файлу, сделать одноразовую ссылку. Также доступ к файлам есть через личный кабинет напрямую в браузере, либо по FTP. Я для визуального контроля и загрузки файлов обычно по FTP захожу.
Сайт — https://rclone.org, Обсуждение: https://t.me/srv_admin/2082
Bup
Я узнал и попробовал программу bup, про которую раньше не слышал. Она мне понравилась и показалась очень полезной, поэтому решил написать и поделиться с вами. Bup использует тот же алгоритм, что и rsync для деления файлов на фрагменты и проверки контрольных сумм, так что производительность у него на хорошем уровне.
Особенность bup в том, что она использует гитовский формат хранения данных в репозиториях. При этом не возникает проблем с огромным числом файлов и большим объёмом. Плюс такого хранения в том, что легко создаются инкрементные копии, причём данные могут быть совсем разные с разных хостов. Но если они одинаковые, то станут частью инкрементной копии. Это хорошо экономит дисковое пространство.
Bup умеет делать как локальные бэкапы, так и ходить за ними на удалённые серверы по SSH. Есть простенький встроенный веб интерфейс. Всё управление через консоль. Это в первую очередь консольный инструмент для самостоятельного велосипедостроения. Показываю, как его установить на Debian.
# git clone https://github.com/bup/bup # cd bup # git checkout 0.33 # apt-get build-dep bup # apt install python3-pip # pip install tornado # make # make install
Теперь надо выполнить инициализацию репозитория. По умолчанию, он будет в ~/.bup. Задать его можно через переменную окружения BUP_DIR. Добавим её сразу в .bashrc и применим изменения:
export BUP_DIR=/mnt/backup
# source ~./bashrc
Инициализируем репозиторий:
# bup init
Создаём индекс бэкапа. Для примера возьму директорию /etc на сервере:
# bup index /etc
Делаем бэкап, назвав его etc с помощью параметра -n:
# bup save -n local-etc /etc
Посмотреть список репозиториев, файлов или бэкапов можно вот так:
# bup ls # bup ls local-etc # bup ls local-etc/2023-01-31-190941
Бэкап удалённой машины делается примерно так:
# bup index /etc # bup save -r SERVER -n backupname /etc
Доступ к серверу надо настроить по ключам.
Восстановление данных:
# bup restore -C ./dest local-etc/latest/etc
Восстановили директорию /etc с ветки latest бэкапа local-etc в директорию /.dest. Соответственно, выбирая разные ветки, вы восстанавливаете данные с того или иного инкрементного бэкапа.
Очень необычная для бэкапов, но при этом весьма удобная схема хранения и работы с данными, точно так же, как с обычными git репозиториями.
У bup есть простенький веб интерфейс, через который можно посмотреть и скачать файлы. По умолчанию он запускается на localhost, поэтому явно указываю интерфейс и порт:
# bup web 172.25.84.75:8080
Если кто-то пользуется bup, поделитесь впечатлением. Программа старая и известная, но я про неё ранее не слышал и не пользовался.
ReaR
ReaR (Relax and Recover) есть в стандартных репозиториях популярных дистрибутивов, в том числе Debian. Ставится с некоторыми зависимостями, которые понадобятся по ходу дела:
# apt install rear genisoimage syslinux nfs-common
С помощью ReaR можно сделать бэкап как железного сервера, так и виртуальной машины. Во время бэкапа создаётся загрузочный ISO диск и общий tar архив с данными. Для восстановления достаточно загрузиться с ISO образа и подцепить архив с данными.
Подобных программ немало, но принцип действия у них может быть разный. ReaR не только создаёт полную копию данных, но и учитывает многие нюансы при восстановлении. Я решил сразу же проверить его в реальной работе для переноса виртуальной машины с Proxmox на HyperV. Здесь полная копия системы не всегда поднимется без дополнительных действий.
Для хранения архива я выбрал NFS шару. Можно использовать SMB, RSYNC или локальное хранение на внешнем USB устройстве (диск, флешка). Нарисовал простенький конфиг /etc/rear/local.conf:
OUTPUT=ISO OUTPUT_URL=nfs://192.168.13.50/volume2/NonRaid BACKUP=NETFS BACKUP_URL=nfs://192.168.13.50/volume2/NonRaid BACKUP_PROG_EXCLUDE=("${BACKUP_PROG_EXCLUDE[@]}" '/media' '/var/crash')
Запустил бэкап:
# rear -v -d mkbackup
Дождался его окончания и проверил, что получилось на выходе:
# ls -h backup.log backup.tar.gz README rear-debian11-vm.iso rear-debian11-vm.log VERSION
Забрал rear-debian11-vm.iso и скопировал на HyperV. Создал там виртулаку, подключил ISO, загрузился с него, выбрал восстановление. Убедился заранее, что на NFS сервер есть доступ с этого гипервизора.
Дождался загрузки временной системы, запустил там:
# rear -v -d recover
Пошёл процесс автоматического восстановления. Я наблюдал за консолью, чтобы понять, как происходит восстановление. Программа восстанавливает разбивку дисков, создаёт LVM тома, файловые системы. То есть это не посекторное бездумное восстановление. После создания файловых систем пошла распаковка архива, затем генерация initramfs и в завершении установка GRUB.
Когда всё завершилось, перезагрузил систему и загрузился с жёсткого диска. Система загрузилась без ошибок и каких-либо действий с моей стороны. Хотя из-за разности гипервизоров, некоторые вещи были другими. Например, на Proxmox сетевой интерфейс был ens18, а на HyperV — eth0. Во время восстановления это было учтено, сетевые настройки были перенесены.
ReaR очень удобная программа. Раньше для переноса системы я рекомендовал либо Clonezilla, либо Veeam agent for Linux FREE. Но у них есть существенные минусы. Для первого нужно останавливать машину и делать полный клон системы. Если она большая, то это занимает много времени. Для Veeam надо перезагружать ОС после установки. Он там довольно сильно в систему врезается со своим драйвером или модулем ядра. Не помню уже точно, как он работает.
С ReaR ничего этого делать не надо. Можно железный сервер забэкапить и перенести без остановки и установки каких-то дополнительных компонентов. Достаточно поставить сам пакет с rear, nfs клиент, если нужен для бэкапа, и пару пакетов для создания iso образа: genisoimage syslinux, которые часто уже есть в базовой системе. Перезагрузки системы не нужны.
Берите на вооружение, расслабляйтесь (relax) и восстанавливайте (recover) системы. Данный инструмент используют OpenStack и Red Hat OpenStack Platform для встроенного бэкапа и восстановления систем.
Сайт: https://relax-and-recover.org, Обсуждение: https://t.me/srv_admin/2699
Restic
В поле моего зрения попала полезная консольная утилита restic, решил её посмотреть и поделиться информацией с вами, так как она показалась мне заслуживающей внимание.
В первую очередь это open source проект и весьма популярный. Для установки достаточно скачать бинарник из репозитория. Он написан на Go. На каких-то системах, например Debian, он есть в базовых репах. Основные возможности:
- все данные шифруются AES256, сам ключ шифруется паролем;
- нет деления на типы бэкапов: полные, инкрементные, дифференциальные, вместо этого используются снепшоты, соответственно работает дедупликация;
- различные хранилища для архивируемых данных: локальная директория, sftp, S3, HTTP REST server, OpenStack Swift, BackBlaze B2, Microsoft Azure Blob Storage, Google Cloud Storage;
- помимо прямого подключения к хранилищам, есть поддержка rclone;
- встроенная проверка целостности данных.
Restic режет данные на блоки настраиваемой длины, блоки собираются в паки. Паки хранят в себе файлы и метаданные, либо ссылки на другие блоки. Всё это выстраивается в деревья. Таким образом работают снепшоты и экономится место под бэкапы.
Покажу пример, как с помощью restic делаются бэкапы. Сначала инициализируется локальный репозиторий:
# restic init -r /mnt/backup
В этот момент будет сгенерирован ключ для шифрования и создана структура каталогов репозитория. Пример для инициализации репозитория по sftp:
restic init -r sftp:user@host:/mnt/backup
Бэкапим:
restic -r sftp:user@host:/mnt/backup backup /data
Смотрим список внепшотов в репозитории:
restic -r sftp:user@host:/mnt/backup snaphots
Смотрим список файлов в снепшоте:
restic -r sftp:user@host:/mnt/backup ls -l latest
Восстанавливаем файлы:
restic -r sftp:user@host:/mnt/backup restore latest --target=/restore/
Для всех операций поддерживаются списки include или exclude. Есть команды для быстрого сравнения снепшотов.
Думаю, вы получили представление, как всё это работает. Утилита консольная и хорошо подойдёт для скриптов. Авторы говорят, что Restic очень быстро работает. Я тестов не проводил. Из неудобств отметил то, что Restic надо ставить на сам хост, где лежат данные. Из документации я не понял, как с одного сервера с Restic забирать данные по ssh с других серверов.
Мне Restic сильно напомнил Borg. Подозреваю, что проблемы у него будут те же. Например, как будет выглядеть листинг снепшота, где хранится 500 тысяч файлов? Но в целом выглядит интересно. Основная фишка — снепшоты и дедупликация из коробки и бесплатно. Есть хорошая документация с практическими примерами.
Утилита подойдёт как для разовых бэкапов небольшой инфраструктуры, так и для централизованного хранения архивных копий за счёт того, что легко интегрируется, распространяется и мониторится. Про мониторинг как раз хотел дополнить.
Для Prometheus есть готовый экспортёр метрик — restic-exporter. Указываете репозиторий, пароль к нему и получаете на выходе полезные метрики: статус проверок, количество снэпшотов, время последнего бэкапа, кол-во файлов в бэкапе, их размер и т.д. А бонусом идёт дашборд для Grafana.
Zabbix тоже имеет готовый шаблон для мониторинга за бэкапами, сделанными Restic. Его написали не разработчики, так как он в отдельном репозитории community-templates, но, тем не менее, они за ним следят и актуализируют к свежим версиям. Мониторинг работает через прокладку resticprofile, которая формирует конфигурационные файлы для бэкапов и умеет сохранять результаты работы в json файл.
Есть ещё один вариант для Zabbix — шаблон, который анализирует стандартный вывод от команды на бэкап или проверку архива. Для этого вывод нужно сохранять в лог файл, а потом скриптом его анализировать и отправлять результат через zabbix_sender. В указанном репозитории есть все примеры — шаблон и скрипты.
Вообще, решение с Prometheus выглядит более целостным, простым и удобным. Если бы мне сейчас нужно было мониторить бэкапы Restic, я бы взял именно его. А если всё же нужен Zabbix, то распарсил бы промовский экспортер. Там буквально, запускаем контейнер с restic-exporter и смотрим метрики:
# docker run -d --name=restic-exporter -v /mnt/backup:/data -e TZ=Europe/Moscow -e RESTIC_REPO_URL=/data -e RESTIC_REPO_PASSWORD=123 -e REFRESH_INTERVAL=60 -p 8001:8001 --restart unless-stopped ngosang/restic-exporter
# curl http://localhost:8001
Очень просто и удобно.
Сайт — https://restic.net, Обсуждение: https://t.me/srv_admin/1692
ElkarBackup
Потестировал очень любопытную программу для бэкапов — ElkarBackup.
Под капотом там RSnapshot, Rsync, Symfony на PHP. То есть это Web приложение на базе Симфонии и Rsync. По сути это просто веб интерфейс к rsync, которым удобно пользоваться. С его помощью можно добавлять хосты, создавать для них задания, планировать их выполнение, смотреть логи.
Я запустил всё это дело в докере. На хабе представлен готовый docker-compose.yml, но у меня с ним не завелось. Немного подредактировал. Вот рабочий вариант:
version: '3.9' services: elkarbackup: image: elkarbackup/elkarbackup:latest volumes: - backups:/app/backups - uploads:/app/uploads - sshkeys:/app/.ssh environment: SYMFONY__DATABASE__PASSWORD: "your-password-here" EB_CRON: "enabled" ports: - 8000:80 db: image: mysql:5.7.22 volumes: - db:/var/lib/mysql environment: MYSQL_ROOT_PASSWORD: "your-password-here" volumes: db: backups: uploads: sshkeys:
Volumes не вынесены из контейнеров, так что это установка чисто для теста. В прод я бы ставил из пакетов, благо они есть под все популярные системы и настраивается всё очень просто по документации. Контейнеры тут только для теста нужны.
После запуска можно идти в веб интерфейс http://192.168.13.123:8000/ и добавлять нового клиента. В качестве URL укажите подключение по SSH, типа такого: root@192.168.13.177
Для клиента создаёте задание, указывая директорию, которую будете бэкапить. Тут же можно расписание настроить, уведомления включить и т.д. После этого надо забрать с сервера публичный ключ для подключения по ssh. Проще всего его скопировать по ссылке: http://192.168.13.123:8000/config/publickey/get
Публичный ключ надо добавить на целевой сервер, которого добавили как клиента. После этого можно запускать задание с бэкапом. Посмотреть результат работы можно в логах. Если всё в порядке, то файлы приедут на сервер в директорию контейнера /app/backups. Доступ к ним можно получить через веб интерфейс.
Работает всё просто и удобно. Мне понравилось. Рекомендую попробовать, если ищите что-то похожее. Интерфейс простой и лакончиный, работает быстро. Не заметил каких-то проблем или глюков. Насчёт того, как эта штуковина переваривает десятки и сотни тысяч файлов, не знаю. Подозреваю, что могут быть проблемы. Но в такие архивы лазить через веб интерфейс не стоит, достаточно заданиями управлять.
Сайт: https://www.elkarbackup.org, обсуждение: https://t.me/srv_admin/1487
FBackup
FBackup — бесплатная программа для резервного копирования. Это достаточно известная старая программа для резервного копирования под Windows. У нее простой и дружелюбный интерфейс. Чтобы быстро настроить бэкап, не придется сильно заморачиваться. При этом она бесплатна в том числе и для коммерческого использования.
На выходе в бэкапе получаются сырые файлы, либо запакованные в zip архив. То есть никакого отдельного формата и лишних проблем во время восстановления. Просто берете свои файлы в исходном виде.
Если сравнивать с тем же Veeam Agent for Microsoft Windows FREE в рамках бэкапа не всей системы а отдельных каталогов, то FBackup будет более функционален, плюс файлы в сыром виде. Это как плюс, так и минус (меньше возможностей инкрементных копий). В общем, все зависит от того, что вам нужно на выходе.
Сайт: https://ru.fbackup.com, обсуждение: https://t.me/srv_admin/831.
Заключение
Если считаете, что я пропустил какую-то полезную бесплатную программу для бэкапа, а она достойна войти в ТОП, делитесь в комментариях. Сразу скажу, что про Bacula и Bareos писать смысла нет. Я знаю про них, но не использую. Мне лично не нравятся. Настраивал и пользовался ими.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном онлайн-курcе по администрированию MikroTik. Автор курcа – сертифицированный тренер MikroTik Дмитрий Скоромнов. Более 40 лабораторных работ по которым дается обратная связь. В три раза больше информации, чем в MTCNA.
Помогла статья? Подписывайся на telegram канал автора
Анонсы всех статей, плюс много другой полезной и интересной информации, которая не попадает на сайт.
Подборки
Топ 12 бесплатных программ для бэкапа