Я обнаружил, что rsnapshot - отличный инструмент для резервного копирования моих файлов для локальной файловой системы. Теперь мне нужно сделать файл rsnapshot_push.conf, в котором я передаю параметры серверу rsync. Как правильно это сделать? Могу ли я использовать rsync для / rsnapshot-backups / localhost / синхронизировать его с сервером rsync.
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 РЕЗЮМЕ
rsnappush [-h] [-r RSYNC_OPT] [-q] SOURCE_PATH [ACCOUNT:]DEST_PATH
SOURCE_PATH является любым локальным путем.
DEST_PATH является путем, локальным или удаленным. Если удаленный, УЧЕТНАЯ ЗАПИСЬ указывает ssh (1) - совместимое описание учетной записи, такой как ПОЛЬЗОВАТЕЛЬ ХОСТ .
Кроме того, под [1 110] DEST_PATH там полномочия / каталог создал, который сжал вывод от getfacl (1). setfacl (1) может использоваться для восстановления полномочий из этого файла, после того как он является несжатым.
rsnappush --rsync-opt=--partial-dir=/home/user2/rsync-partial \
/home/user user2@remotehost:backups/