Как правильно бэкапить в этом случае?

Доброго дня. Имеется необходимость бэкапить некоторое количество серверов с различной фигнёй
Планировалось просто копировать нужное с помощью rsync, этого мне достаточно.
Скрипт запускать с сервера бэкапов, который обходит все нужные хосты по очереди.
Но возникла проблема с правами на некоторые папки - подключаться под root низя(по тз), а у обычного юзера даже с правами sudo нет доступа например к папке /var/lib/docker... дабы оттуда всё стащить

Как быть в такой ситуации? выдать права на чтение нужных папок на хостах?
что то типа sudo setfacl -R -m u:username:rX /path/to/volume
  • Вопрос задан
  • 4308 просмотров
Пригласить эксперта
Ответы на вопрос 5
leahch
@leahch Куратор тега Linux
3D специалист. Dолго, Dорого, Dерьмово.
У Вас просто неправильный подход. Нужно не на сервер ходить за файлами, а сервер должен сам бекапить в нужное место. Тогда и проблемы с root не будет.
Работал с тремя bareos (bakula), urbackup, borg - все достойны. В Вашем случае, наверное, borg - лучший выбор.
Ответ написан
@rPman
ACL - во всех современных linux дает дополнительный слой прав поверх привычных chown/chmod.

Можно с помощью setfacl выдать дополнительные права на файловую систему специально созданному пользователю backup и тогда rsync с удаленной машины сможет залогиниться под этим пользователем и скопировать файлы.
Типа так:
sudo setfacl -R -m u:backup:rx /
а копирование с удаленной машины типа так:
rsync -aAXv --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} backup@remote:/ /path/to/destination

дополнительно нужно будет настроить без парольную аутентификацию под пользователем backup на эту машину

p.s. резервное копирование больших объемов данных, особенно если файлы большие или, к примеру, во время резервного копирования могут быть записаны, потребует заморозку файловой системы с помощью снапшотов, выбор технологии которых накладывает различные ограничения, например LVS кратно роняет скорость работы файловой системы, на которой создан снапшот. Я бы рекомендовал cow файловые системы btrfs/zfs, у них из коробки максимально эффективная система снапшотов (на основе которой можно создать инкрементальные бакапы на порядок удобнее и быстрее чем с помощью rsync) но они роняют (десятки процентов на hdd) скорость работы баз данных в принципе... в общем нужно думать и правильное решение - исключить файлы баз данных из резервного копирования и настройка этого копирования уже средствами базы данных.

В общем полностью абстрагироваться от клиентских машин не получится, что то на них настраивать придется
Ответ написан
@Misteg
Пофайловвй бэкап нужен для восстановления при дизастере? Нет, такой бэкап не подойдет.
Если нужно восстановить как было (прям всё) - тогда проще делать снимок lvm и его отправлять на сервер бэкапов. Потом с этого же снимка можно раскатать все.
Но все же, докер директории я бы не бэкапил, а этом же прелесть докера - взял и развернул где угодно тоже самое приложение. Если в контейнер смонтированы директории с какими-то файлами - бэкапить эти директории. Если это база в докере - бэкапить средствами базы.
Ответ написан
SignFinder
@SignFinder
Wintel\Unix Engineer\DevOps
Даже veeam agent for Linux будет более правильным выбором, чем скрипты с rsync.
Ответ написан
Комментировать
@Dupych
Veeam Backup самое лучшее решение.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы