Home » Разное » Подборки » Топ 12 бесплатных программ для бэкапа

Топ 12 бесплатных программ для бэкапа

Существует большое количество бесплатных программ для бэкапа информации. В своём telegram канале https://t.me/srv_admin я делал небольшие обзоры на множество из них. Решил составить список из 12-ти наиболее популярных и функциональных, чтобы удобно было выбрать подходящую. Все программы опробованы и прокомментированы лично мной. Со временем список пополнялся, так что теперь это уже не 12 программ для бэкапа, а значительно больше.

Если у вас есть желание научиться администрировать системы на базе Linux, рекомендую познакомиться с онлайн-курсом «Linux для начинающих» в OTUS. Курс для новичков, для тех, кто с Linux не знаком. Подробная информация.

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

Veeam Agent for Windows or Linux Free

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

Kopia

Burp

Автор на своём сайте целый раздел написал на тему того, зачем он начал разрабатывать Burp, если есть такая замечательная Bacula, которой он сам пользовался. Если кратко - Бакула слишком сложная для простых задач. Он решил написать что-то похожее, но значительно проще.

Burp написан на языке C с использованием librsync (значит синхронизирует файлы быстро) и имеет клиент-серверную архитектуру. Сервер ставится на linux, клиенты есть под linux, windows, mac. Разрабатывается активно уже в течении более чем 10-ти лет.

Burp поддерживает создание репозиториев для бэкапа, дедупликацию, шифрование, сжатие, планирование, оповещения и т.д. В общем, полноценная система бэкапа. Умеет выдавать свой статус в json, можно разворачивать с помощью ansible, есть готовые роли. Так что с молодёжностью все в порядке, несмотря на то, что проект достаточно старый.

Отдельный персонаж написал веб интерфейс для Burp. Живет тут - https://git.ziirish.me/ziirish/burp-ui.

Любопытная система бэкапа. Мне приглянулась в первую очередь тем, что она на базе rsync сделана, плюс файлы хранятся в открытом виде. По бэкапам можно тем же find лазить при желании, если они не зашифрованы.

https://burp.grke.org

Burp

Syncthing

Syncthing работает по принципу торрент клиентов. В режиме реального времени синхронизируются данные всех клиентов, которые пожелали синхронизировать какую-то директорию. Клиенты есть под все популярные системы, в том числе на смартфонах.

Работает примерно так. Ставите клиент на какую-то систему и добавляете туда папку для синхронизации. Клиент автоматически связывается с публичными централизованными релеями или серверами-анонсерами. Их можно поднимать свои. Клиенту назначается уникальный id.

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

И всё! После этого начинается двухсторонняя синхронизация этой директории. Сюда же можно добавить еще несколько систем. Таким образом все они будут синхронизировать одну и ту же директорию. Если вы не хотите соединяться через публичные релеи, можете поднять свой. Любо просто настраивать подключения по ip.

Система мне понравилась, ставил на винду. Настроил и разобрался быстро. Интересный принцип синхронизации. Не знаю, насколько надежно и быстро будет работать. Подозреваю, что при большом количестве файлов могут быть проблемы, как и у всех программ подобного рода. Тысяч 500 файлов загрузить и все повиснет или будет куча конфликтов. Но для не сильно больших объемов и количества файлов по идее должно работать нормально. Можно так свои файлы между устройствами шарить.

https://github.com/syncthing

Syncthing

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 ролика.

https://www.borgbackup.org/

Borg

Clonezilla и Rescuezilla

Clonezilla это аналог коммерческих продуктов для снятия образов дисков и систем для бэкапа или переноса на другое железо, таких как Acronis True Image, Norton Ghost и т.д.

Она имеет консольный интерфейс для тру линуксоидов и любителей генту с арчем, а Rescuezilla более человеческий GUI для тех, кто привык тыкать мышкой.

Я сам неоднократно использовал Clonezilla для переноса системы с железа в виртуалку или между разными гипервизорами. Продукт хороший и известный, рекомендую, если еще не знакомы с ним.

Думаю, что в следующий раз, когда понадобится, предпочту GUI консоли. Так же одной из фишек Rescuezilla является то, что она может очень легко монтировать файлы резервных копий Clonezilla и получать к ним доступ.

Rescuezilla

https://rescuezilla.com

https://clonezilla.org

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

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. Но на первый взгляд по функционалу, удобству и простоте превосходит их. Так что рекомендую.

https://www.urbackup.org

urbackup

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

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

DeltaCopy

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

Cobian Backup

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

FreeFileSync

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

Rclone

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, поделитесь впечатлением. Программа старая и известная, но я про неё ранее не слышал и не пользовался.

Сайт / Исходники

Bup backup

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

ReaR

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

Restic

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

ElkarBackup

FBackup

FBackup - бесплатная программа для резервного копирования. Это достаточно известная старая программа для резервного копирования под Windows. У нее простой и дружелюбный интерфейс. Чтобы быстро настроить бэкап, не придется сильно заморачиваться. При этом она бесплатна в том числе и для коммерческого использования.

На выходе в бэкапе получаются сырые файлы, либо запакованные в zip архив. То есть никакого отдельного формата и лишних проблем во время восстановления. Просто берете свои файлы в исходном виде.

Если сравнивать с тем же Veeam Agent for Microsoft Windows FREE в рамках бэкапа не всей системы а отдельных каталогов, то FBackup будет более функционален, плюс файлы в сыром виде. Это как плюс, так и минус (меньше возможностей инкрементных копий). В общем, все зависит от того, что вам нужно на выходе.

Сайт: https://ru.fbackup.com, обсуждение: https://t.me/srv_admin/831.

FBackup

Заключение

Если считаете, что я пропустил какую-то полезную бесплатную программу для бэкапа, а она достойна войти в ТОП, делитесь в комментариях. Сразу скажу, что про Bacula и Bareos писать смысла нет. Я знаю про них, но не использую. Мне лично не нравятся. Настраивал и пользовался ими.

Если у вас есть желание научиться администрировать системы на базе Linux, но вы с ними никогда не работали и не знакомы, то рекомендую начать с онлайн-курса «Linux для начинающих» в OTUS. Курс для новичков, для тех, кто с Linux не знаком. Цена за курс минимальная (символическая). Информация о курсе и цене.

Помогла статья? Подписывайся на telegram канал автора

Анонсы всех статей, плюс много другой полезной и интересной информации, которая не попадает на сайт.

Автор Zerox

Владимир, системный администратор, автор сайта. Люблю настраивать сервера, изучать что-то новое, делиться знаниями, писать интересные и полезные статьи. Открыт к диалогу и сотрудничеству. Если вам интересно узнать обо мне побольше, то можете послушать интервью. Запись на моем канале - https://t.me/srv_admin/425 или на сайте в контактах.

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

  1. Кирилл

    Касательно DeltaCopy. Как то смотрел её и столкнулся с проблемой кодировки. Все имена файлов на кирилице портились. Для rsync есть ключ --iconv на случай проблем с кодировкой но при --iconv=windows-1251,utf-8 вылезала ошибка The server is configured to refuse --iconv в итоге так и не понял что нужно.

  2. Евгений

    Не работает KopiaUI на Win8. Завершается с ошибкой Точка входа в процедуру DiscardVirtualMemory не найдена. Хоть бы требования какие были обозначены :(

  3. есть еще Minarca github - ikus060/minarca

  4. Святослав

    Здравствуйте, подскажите, пожалуйста, как из программ лучше подойдёт для малого офиса. Хочу бекапить рабочие машины по локальной сети на Xpenology NAS. Интересуют: сжатие резервных копий, инкрементное резервное копирование, резервное копирование по расписанию с автоматическим удалением, возможность создания диска восстановления. Аналог AOMEI Backupper, только бесплатный.

    • Что значит бэкапить рабочие машины? Делать образы дисков, чтобы можно было восстановить всю систему? Или речь идёт о конкретных данных на этих машинах?

    • Для этого лучше всего подойдёт Veeam Agent for Windows Free. Постоянно его использую. Простое и надёжное средство.

    • Александр

      Возможно, FOG project подойдёт. Мне он понравился, бесплатный, по сети можно образы разворачивать, массово при чем.

  5. Дмитрий

    кстати в 2022 вышел продолжатель дела Cobian Backup - Cobian Reflector, обещают то-же, но заново переписанное

  6. А почему Handy Backup не рассмотрели?

  7. Что то используете для бэкапа ВМ на бесплатной платформе ESXi 6.5?

  8. Cobian Backup глючно работает, старые бэкапы автоматически не удаляет, на сервер глючно бэкапит. Притом начинает глючить в процессе работы, сначала работает хорошо. Или сбоит на самом бэкапе папок или на их архивировании.

    Пытался работать с ней на Вин7, вин8.1, Вин10.

  9. Аноним

    в UrBackup есть одна неудобная вещь - место для бэкапа можно выбрать только одно, т.е если у вас разные диски, например, под baremetal и под файлы, так не получится. Тока 1 путь. ( эх жалко

  10. В Kopia отключить шифрование нельзя? И как она сравнивает файлы? По времени создания или по хешу?

    • Это всё условности. Конечно, для горячих данных Syncthing не подходит. А вот для хранения трех копий холодных данных в разных местах вполне подходит. И запускать Syncthing можно по расписанию, а не постоянно.

      • Павел Данченко

        Доброго!

        Работаю с Syncthing с нулевых версий 2016 года, знаю его изнутри и тащу специальный порт для устаревших систем XP/2003 на go1.11.13 windows/386 (TLS 1.3). Это действительно не инструмент бекапа, а отличный сихронизатор контента. Любого контента, холодного/горячего – непринципиально, в том числе и между совершенно разными системами, он над данными и над системами бекапа.

        - go дает возможность ему работать даже на кофейнике, а единый бандл упрощает администрирование и обновление уже развернутых систем;
        - периодический скан контента, скан по запросу, подписка на события в каталогах;
        - корзина объектов, внутренняя реализация версионности и подключение сторонних систем контроля версий;
        - веб-интерфейс, командная строка, сторонние утилиты;
        - понятный релизный план выпусков новых версий.

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

        https://data.syncthing.net/

        У меня сейчас в синхронизации потолок на хостах 2.5Tb, а у людей в ней петабайты. Просто размазываю данные по области, т.к. у меня нет возможности по каналам забирать разом всю область в центр, для этого работают отдельные узлы на направлениях (зову их «плечи», территориально распределены и на разных провайдерах).

        В общем моя любовь к Syncthing скоро уже пойдет в школу :) по вопросам синка могу пообщаться тут или в почте/телеге.

        Павел

  11. Александр

    Визуально (графическая часть) понравилась Burp, но как-то замысловата установка...
    Не планируется разбор какой-либо Linux системы для резервного копирования?

  12. По поводу DeltaCopy, использую её в качестве сервера rsync на Windows машинах.
    Обнаружил после установки, что очень медленная скорость копирования удаленного клиента rsync по каналу 1Гбит/сек.
    Скорость копирования составляла ~15МБайт/сек.
    Какие только настройки не перепробовал на сервере и клиенте, ничего не помогает.
    Нашел решение, обновив компоненты DeltaCopy из архива:
    https://sourceforge.net/projects/backuppc/files/cygwin-rsyncd/3.1.2.1/cygwin-rsyncd-3.1.2.1_source.zip/download
    Из архива из каталога "bin" скопировать с заменой все файлы с расширением *.dll и *.exe в каталог установки DeltaCopy
    После обновления компонентов скорость копирования стала ~90МБайт/сек (~720Мбит/сек)

  13. К сожалению не нашел в статье: Вы могли бы подсказать, какой софт проверяет целостность итогового файла? к примеру, по хеш-сумме.

  14. Не видели Вы UrBackup в действии и "правильно его готовить не умеете".
    UrBackup по умолчанию плодит линки. После 10К+ файлов всё надёжно вешается. Для нормальной работы ему надо btrfs (работает из контейнера) или zfs (из родного контейнера не запускается). Тогда он вместо линков использует снапшоты и cow, и его можно перевести в режим "вечного инкремента", что на объёмах в 1Т+ весьма полезно. На zfs не умеет работать с субклиентами из коробки, но можно уговорить (source code доступны на github). Файлы хранит как файлы, образы в VHD.
    И директорию для резервного копирование на хосте ему надо называть так же, как в контейнере (по умолчанию /backups), а то все линки "съедут" и без контейнера будет очень грустно.
    На win работает с vss (имеются в виду файловые копии) и надо ему до 10% резерва поднять кэш, и памяти надо до 40Gb на 1Tb данных, а то всё навернётся.
    Зато потом можно любой файл на любую дату/время резервной копии поднять за три шага в mc:
    - выбираем клиента (субклиента)
    - выбираем дату
    - выбираем файл
    Ни одна Baculа по скорости и удобству рядом не стояла.
    И скрипты он тоже может запускать, причём даже свои для каждого субклиента, но настраивается это очень ... специфично.
    Для ентерпрайз эта штука на BareMetall + RAIDZ очень хорошо, для дома - контейнер + btrfs достаточно.

  15. Админ подскажи пожалуйста какая программа умеет как DROPBOX при изменений файла моментально создавать копию чтобы потом можно было из истории восстановиться?
    Ищу кто может именно сразу делать при изменении а не по таймеру проверять не изменились ли файлы.

  16. Дмитрий

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

  17. Александр

    Подскажите, а какой вариант лучше выбрать для резервного копирования данных файлового сервера сделанного на Windows Server 2003

      • Александр

        Спасибо, попробовал, вроде нормально работает, единственное ACL при резервировании теряется. Поэтому там где это не важно буду его использовать, а в других буду скрипты через robocopy оставлю, правда там не резервирование происходит, а синхронизация, но в данном случае важнее ACL.

        • ACL можно в файл сохранить, а потом восстановить. Я так делал скриптом на powershell. Он относительно простой. Нашёл где-то в инете. Сейчас нет под рукой.

          • Александр

            Не знал что такое возможно, поищу. Еще раз спасибо за статью и советы.

  18. АНдрей

    тут скорее нужно разделить программы по типам бекапов : bare metal и file backup , так правильнее на мой взгляд будет понятнее если кому то важно бекапить машину целиком а кому то только важные файлы

  19. Алексей

    rsnapshot в этот список не входит? Очень удобная прога.

    • Я о нём тоже писал на канале, но не стал включать в подборку, так как очень нишевый продукт. Не знаю, есть ли у него вообще графический интерфейс. Я его чисто в консоли использую.

  20. Дома для синхронизации и бекапов телефонов использую Nextcloud. На работе же пользуюсь veam. Для бекапа виндовых тачек - более чем. Линуксовые же бекапятся посредством снапшотов.
    Есть пара удалённых компов с которых файло бекапится какой то софтиной. Она тупо файло архивирует, складывает локально, и копию отправляет на мой ftp. Да я до сих пор пользуюсь ftp ) к сожелению название не вспомню, а посмотреть возможности нет, компы сейчас выключены.

  21. Спасибо )
    freefilesync и syncthing больше про синхронизацию, а не про бэкапы (как остальное)

    >А вот телеграм-канал увы скатился в токсичное говно

    Соглашусь. Был подписан, но отписался. Полно неадекватов, а автору все равно (

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

  22. Перепробовал много чего. В итоге купил nas Synologi.и всеТам есть встроенная утилита.. Не надо ничего городить. + Значительно большая безопасность бэкапов
    Рекомендую.

    • Алексей

      Учитывая стоимость Synology (нормальной комплектации) - дешевле самому собрать системный блок... Да и помощнее выйдет. А любой Debian прекрасно справится с необходимыми задачами. Немного знаний и свободного времени.

      Я так понимаю, вы свой комментарий ошибочно разместили под такой узкоспециализированной статьёй? Он скорей всего предназначался для какого-то другого ресурса? )))

    • Я тоже люблю Synology. У меня дома стоит.

  23. Александр

    Спасибо за статью !
    Люблю ваш сайт, хотелось бы побольше статей.
    А вот телеграм-канал увы скатился в токсичное говно. Что не спрошу там - хиханьки хахоньки смихуечки.
    Ну не можешь помочь - ну помолчи, но нет - надо что-то гадкое сказать.

  24. Алексей

    Ещё неплоха программа timeshift:
    https://github.com/teejee2008/timeshift/releases
    https://wiki.debian.org/timeshift

    Я использую её как "точка восстановления" в винде ))) Но файловая система должна быть btrfs.

  25. Автор Cobian backup не забросил проект и выкатил новую версию Cobian Reflector, правда пока в бета версия, но не чем не отличается от старой версии в плане графики.

  26. Алексей

    А как же программа grsync?

    • Впервые слышу о ней. Надо будет посмотреть. Статья будет дополняться по мере накопления материала на канале.

      • Алексей

        Вот ссылка на проект:
        http://www.opbyte.it/grsync/

        Я данную программу использую сколько для бэкапа (вернее, синхронизации данных) внешнего USB жёсткого диска и нескольких флешек со своим домашним сервером. В ручном режиме. каждые несколько дней. Например, на внешнем жёстком диске накопилась информация - вставляю флешку в сервер и запускаю программу (уже ранее настроены какие именно папки), и всё синхронизируется на сервер. По аналогии с флешками - накопилась измененная информация на сервере (вернее на офф-лайн Яндекс.Диске), вставляю флешку на 256 Гб - и всё синхронизируется с домашнего сервера на указанную флешку.

  27. Kopia поразительно похожа на restic, только он без GUI, но как и borg заслуживает внимания.

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

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

Нажимая кнопку "Отправить комментарий" Я даю согласие на обработку персональных данных.
Используешь Telegram? Подпишись на канал автора →
This is default text for notification bar