rsnapshot push на сервер ОТ клиента

Я обнаружил, что rsnapshot - отличный инструмент для резервного копирования моих файлов для локальной файловой системы. Теперь мне нужно сделать файл rsnapshot_push.conf, в котором я передаю параметры серверу rsync. Как правильно это сделать? Могу ли я использовать rsync для /rsnapshot-backups/localhost/ синхронизировать его с сервером rsync.

2 ответа

Rsnapshot основывается на дизайне. Сила Rsnapshot заключается в использовании жестких ссылок, и это работает только для локальных файловых систем. (Можно использовать nfs, поскольку он поддерживает жесткие ссылки, но не, например, sshfs).

В сценарии push лучшее решение - просто передать в каталог резервного копирования на сервере с помощью rsync, а затем разрешить rsnapshot обрабатывать моментальные снимки из этого каталога, как это было задумано. Rsnapshot не заботится, были ли внесены изменения с помощью rsync или путем сохранения файла.

В FAQ по rsnapshot есть причудливое решение, которое запускает rsnapshot после rsync, но это может быть излишним. Просто запуск rsnapshot из заданий регулярного cron тоже работает.

Альтернативное решение - это rdiff-backup, однако это не дает хорошего представления каталога каждого снимка и требует запуска команд для восстановления файлов, что может усложнить быстрое восстановление.

Другой вариант - использовать обратный ssh-туннель, а затем "дистанционно" тянуть со стороны получателя:

#!/bin/bash -x
IVAL=${1:-hourly}
ssh -vNR 1998:localhost:22 example.com &
ssh example.com "rsnapshot -c pull-from-sender-rsnapshot.conf ${IVAL}"

где pull-from-sender-rsnapshot.conf может содержать строку вроде:

backup localhost:1998/etc/  desktop-1

Это может быть вызвано cron на стороне отправителя, вызывая удаленный rsnapshot локально.

Я разработал rsnappush специально для решения той же проблемы, с которой вы столкнулись, и фактически наткнулся на ваш пост, потому что я искал предварительно построенное решение (которого еще не было).

СИНТАКСИС

rsnappush [-h] [-r RSYNC_OPT] [-q] SOURCE_PATH [ACCOUNT:]DEST_PATH

ОПИСАНИЕ

rsnappush - это оболочка для rsync(1), которая помогает в добавочных моментальных снимках на уровне файлов, которые передаются в место назначения. Неизмененные файлы жестко связаны. Файлы просто размещаются в каталоге для каждого снимка: DEST_PATH/backup-YYYYmmdd-HHMM/ для легкого доступа и восстановления.

SOURCE_PATH - это любой локальный путь.

DEST_PATH - это локальный или удаленный путь. В случае удаленного ACCOUNT указывает описание учетной записи, совместимое с ssh(1), например, USER@HOST.

Кроме того, в DEST_PATH существует каталог permissions/, который имеет сжатый вывод из getfacl(1). setfacl(1) может быть использован для восстановления прав доступа к этому файлу после его распаковки.

ПРИМЕР

rsnappush --rsync-opt=--partial-dir=/home/user2/rsync-partial \
          /home/user user2@remotehost:backups/
Другие вопросы по тегам