LINUX.ORG.RU

Нубу нужны рекомендации по организации бекапов

 


0

2

Всем привет, мой первый пост здесь.

Недавно озадачился вопросом организации бекапов для моей домашней пекарни, медиа-сервера и VPS-ки. Естественно, все это работает на Линуксе. В Интернете нашёл гигантское количество информации по этой теме и потерялся. Помогите, пожалуйста.

Что мне хотелось бы:

  • Простая noob-friendly система бекапов, которая бы копировала важные файлы и каталоги из трёх компьютеров (из одного локального и из двух удалённых, по ssh)
  • Бекапы должны сохраняться на внешнем жёстком диске, который подключен к локальному компу
  • Доступа к локальному компу по ssh из Интернета нет и не предвидится, то есть формировать бекапы на удаленном компе, а потом оттуда копировать их на локальный комп по ssh — не вариант
  • На HDD должны храниться 3 копии бекапов, скажем, за первую, вторую и третью неделю. Это на случай, если в свежий бекап попадут испорченные файлы. То есть самые старые бекапы должны автоматически удаляться, чтобы не занимать место
  • Бекапы не должны занимать гигантское количество дискового пространства. Я так понимаю, что нужно выбрать инкрементальный способ резервного копирования?

Пытался курить маны по borg, но там дичь какая-то непонятная с монтированием удалённых файловых систем sshfs и какими-то дичайшими bash-скриптами с циклами, чрутом и т.д. Мне бы хотелось что-нибудь попроще.

borg умеет по ssh бекапить. На принимающей стороне запускается borg-server, который принимает команды и данные. Надо только в ~/.ssh на сервере конфиг с ключами сделать, а на принимающем компе открытый ключ в authorized_keys добавить.

Я так с удалённого сервера на домашний комп бекап настроил. Если интересно, могу расписать, как и что делал.

Radjah ★★★★★
()

Все эти хотелки прекрасно покрываются как раз borg. Не знаю, что там за дичь, тем более непонятная. Я бы советовал всё же ещё раз попытаться покурить маны и вникнуть. Ещё проще так-то некуда.

CrX ★★★★★
()
Ответ на: комментарий от Radjah

Ключи ssh уже настроены. Единственное - это у меня нестандартные порты для подключения по ssh. Если не трудно, то напишите, пожалуйста, как у вас это устроено.

bernd32
() автор топика
Ответ на: комментарий от bernd32

нестандартные порты для подключения по ssh

На хосте, откуда будет производиться бекап.

# .ssh/config
Host backup-server
        Hostname hostname.tld
        Port 12345
        User backup-user
        ForwardX11 no
        Compression yes
        IdentityFile ~/.ssh/borg_backup.key
        ServerAliveInterval 10
        ServerAliveCountMax 30

По названиям параметров разберешься.

На хосте, куда будет производиться бекап.

/home/backup-user/.ssh/authorized_keys
command="borg serve --restrict-to-path /path/to/backup",restrict ssh-ed25519 открытый_ключ комментарий

У юзера должен быть нормальный shell, чтобы команды запускать.

А дальше можно делать всё точно так же, как и с локальными бекапами, только в адрес репозитория добавляешь backup-server:/path/to/backup

Я делал скрипт со всеми командами, таймер на запуск по расписанию и юнит, который этот скрипт дёргает.

Иногда при плохом соединение может случиться такое, что lock-файл не удаляется. Его может удалить borg при следующем бекапе, а может пожаловаться, что что-то пошло не так. Такое иногда приходится руками разгребать.

Короче, хотя бы раз в неделю просматривай логи бекап-юнита, чтобы сюрприза не было.

Radjah ★★★★★
()
Ответ на: комментарий от bernd32

(+ @Radjah)

Я понял, что официальная. Но было сказано «маны», из чего я сперва решил, что имеется в виду буквально man borg. И что характерно, для реализации перечисленных хотелок его достаточно.

CrX ★★★★★
()
Последнее исправление: CrX (всего исправлений: 1)
Ответ на: комментарий от NyXzOr

Мне больше restic приглянулся. Они похожими кажутся при беглом взгляде на доки borg’a. Не?

Только restic на golang написан. И если я ничего не пропустил, он не умеет делать репозитории без пароля, и по компрессии данных у него выбор бедный был. Но при этом его можно без проблем использовать на Windows. borg у меня там запустить не получилось. Может уже и сделали, я давно не проверял.

Radjah ★★★★★
()

Недавно озадачился вопросом организации бекапов для моей домашней пекарни, медиа-сервера и VPS-ки.

Думайте не только лишь об организации резервных копий, но и о восстановлении файлов из ваших резервных копий.

Camel ★★★★★
()
Ответ на: комментарий от NyXzOr

Сжатие:

Borg: Поддерживает различные алгоритмы сжатия данных, что позволяет уменьшить размер резервных копий.
Restic: На данный момент не имеет встроенной поддержки сжатия. 

Управление и гибкость:

Borg: Операции очистки (pruning) выполняются быстро и эффективно.
Restic: Операции очистки могут занимать много времени и требовать больше оперативной памяти. 
futurama ★★★★★
()
Ответ на: комментарий от futurama

Какую-то компрессию умеет https://restic.readthedocs.io/en/latest/047_tuning_backup_parameters.html#com...

Я пробовал это у себя. После конвертации репозитория надо было запускать с ключами для пережатия уже существующих данных. Какая-то экономия по месту есть.

Radjah ★★★★★
()

Нубу нужны рекомендации по организации бекапов

Обязательно делайте.
Вот с год ленился сделать бэкап внешнего винта и всё потерял.
К счастью, что касаемо разработки всегда минимум две копии.

Скажу вам по секрету - «Один раз в год и палка стреляет».

anonymous
()

Есть такой дистр, название ему Parted Magic на основе Gparted и других.Он может со слов разработчиков клонировать диск и делать резерв.Я лично им не пользовался, так как особо необходимости нет.Скачать можно с рутрекера, но это особо законно.А так он выдается по подписке.Удачи! P.S. Он похож по функциям с Acornis

nicholas_ru
()
Ответ на: комментарий от Camel

Что за offline-бекапы? o_0

Просто в каталог делаю так:

#backup
/usr/bin/borg create --stats --compression zstd,11 --umask 0007 /data/Backup/Data/matrix::matrix-{now} /var/lib/matrix-synapse

#clean
/usr/bin/borg prune --keep-last 15 --stats --umask 0007 /data/Backup/Data/matrix

#compact
/usr/bin/borg -v compact --umask 0007 /data/Backup/Data/matrix

Создать новый бекап со сжатием в zstd и именем «matrix-текущая дата и время»

Удалить старые бекапы, кроме последних 15 штук.

Удалить неиспользуемые данные из репозитория.

Radjah ★★★★★
()

cron bash и rsync :)

примерно такой командой:

rsync -av –delete –exclude=~* –link-dest=$BACKUP_DIR/latest $MOUNT_DIR/ $BACKUP_DIR/$A_DATE/

инкремент за счет хард линков и делай хоть пару раз на день

cylon17
()
Ответ на: комментарий от Radjah

Что за offline-бекапы?

Бекапы, которые вообще не подключены ни к какой электронике. Подключили флешку (или НЖМД через адаптер, коих полно, или вставили кассету в ленточный накопитель), скомандовали «сложи бекап сюда», отключили флешку, положили в сейф.

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

Через полгода достали одну из флешек, и восстановили с неё данные.

Офлайновые бекапы нужны чтобы взломщик не мог удалить или испортить ваши резервные копии. Если бекапы, например, заливаются на NAS, который всегда подключен по сети, то злоумышленник, который получил контроль над ЭВМ, сможет их, например, зашифровать. И вроде бы у вас бэкапы были, а толку от них никакого.

Camel ★★★★★
()
Ответ на: комментарий от Radjah

А вот если я borg’у дам командоньку «восстанови мне файл /home/user/Documents/account.txt в том виде в котором он был 12 февраля в 12:00», то borg мне скажет «подключи флешку Volume12, там лежит ближайший бекап этого файла, 14 февраля 23:12»? Или я сам должен буду найти на которой из флешек у меня лежит бекап за нужную дату?

Camel ★★★★★
()