Rsnapshot - мощный инструмент резервного копирования на основе Rsync

Rsnapshot – это утилита для резервного копирования локальных и удаленных файловых систем с открытым исходным кодом, написанная на Perl, которая использует возможности Rsync и SSH для создания запланированных инкрементных резервных копий файловых систем Linux/Unix.

Rsnapshot занимает только место одной полной резервной копии плюс различия, что позволяет хранить резервные копии на локальном диске, внешнем USB-накопителе, диске, подключенном к NFS, или по сети на другой машине через SSH.

В этой статье мы рассмотрим процесс установки, настройки и использования Rsnapshot для создания ежечасных, ежедневных, еженедельных и ежемесячных локальных резервных копий, а также удаленных резервных копий.

Установка Rsnapshot Backup в Linux

Сначала вам нужно установить и включить репозиторий EPEL (Extra Packages for Enterprise Linux), поскольку Rsnapshot не включен по умолчанию в дистрибутивы на базе RHEL.

sudo dnf install epel-release
sudo dnf install rsnapshot

В дистрибутивах на базе Ubuntu rsnapshot доступен в репозиториях по умолчанию, поэтому вы можете установить его с помощью менеджера пакетов apt:

sudo apt install rsnapshot

После установки вы можете убедиться в правильности установки, проверив версию.

rsnapshot -v

Настройка входа в систему без пароля по SSH

Для резервного копирования удаленных серверов Linux необходимо настроить SSH для беспарольного входа между сервером резервного копирования и удаленной машиной.

Сгенерируйте пары открытых и закрытых ключей SSH, выполнив следующие команды:

ssh-keygen -t rsa

Затем скопируйте открытый ключ на удаленный сервер:

ssh-copy-id user@remote-server

Настройка Rsnapshot в Linux

Файл конфигурации для rsnapshot находится в /etc/rsnapshot.conf, откройте этот файл конфигурации с помощью текстового редактора, например nano или vim:

sudo nano /etc/rsnapshot.conf
OR
sudo vi /etc/rsnapshot.conf

Некоторые из важных параметров, которые вам нужно будет настроить, включают:

Каталог резервного копирования моментальных снимков

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

snapshot_root   /data/backup/

Установка интервалов резервного копирования

Rsnapshot поддерживает различные интервалы резервного копирования: ежедневные, еженедельные и ежемесячные. Вы можете установить периодичность резервного копирования, откомментировав следующие строки:

interval    hourly    6
interval    daily     7
interval    weekly    4
interval    monthly   3

Настройка каталогов резервного копирования

Чтобы создать резервную копию локальных каталогов, добавьте пути к каталогам.

backup    /home/     localhost/
backup    /etc/      localhost/

Для удаленного резервного копирования укажите удаленный сервер и каталог для резервного копирования, как показано ниже:

backup    root@remote-server:/home/     /data/backup/

Включить удаленное резервное копирование

Чтобы включить удаленное резервное копирование по SSH, отмените строку cmd_ssh:

cmd_ssh    /usr/bin/ssh

Если вы изменили порт SSH по умолчанию, обновите строку ssh_args, чтобы отразить пользовательский порт (например, порт 7851):

ssh_args    -p 7851

Исключение файлов и каталогов

Вы можете исключить определенные файлы и каталоги из резервного копирования, создав файл исключения.

sudo nano /data/backup/exclude.txt

Добавьте исключения в следующем формате:

- /var/cache
- /tmp
+ /etc
+ /home

В файле rsnapshot.conf сделайте ссылку на файл исключений:

exclude_file    /data/backup/exclude.txt

После настройки Rsnapshot проверьте правильность настроек, запустив команду:

sudo rsnapshot configtest

Вы должны увидеть сообщение Syntax OK. Если есть какие-либо ошибки, исправьте их, прежде чем продолжить.

Наконец, вы можете запустить Rsnapshot вручную, используя команду для интервала, который вы хотите создать резервную копию:

sudo rsnapshot hourly

Автоматизация Rsnapshot с помощью Cron

Чтобы автоматизировать процесс резервного копирования, настройте задания cron на запуск Rsnapshot через определенные промежутки времени, добавив следующее в файл /etc/cron.d/rsnapshot:

0 */4 * * *    root    /usr/bin/rsnapshot hourly
30 3 * * *     root    /usr/bin/rsnapshot daily
0 3 * * 1      root    /usr/bin/rsnapshot weekly
30 2 1 * *     root    /usr/bin/rsnapshot monthly

Настройка отчетов Rsnapshot

В состав Rsnapshot входит скрипт для отправки отчетов о резервном копировании по электронной почте. Чтобы настроить его, скопируйте скрипт и сделайте его исполняемым:

sudo cp /usr/share/doc/rsnapshot/utils/rsnapreport.pl /usr/local/bin/
sudo chmod +x /usr/local/bin/rsnapreport.pl

Теперь отредактируйте файл rsnapshot.conf и добавьте флаг --stats в секцию rsync_long_args:

rsync_long_args --stats --delete --numeric-ids --delete-excluded

Затем добавьте отчет в задание cron для отправки отчета по электронной почте:

0 */4 * * * root /usr/bin/rsnapshot hourly 2>&1 | /usr/local/bin/rsnapreport.pl | mail -s "Hourly Backup Report" name@email.ru

Мониторинг резервных копий Rsnapshot

Вы можете отслеживать резервное копирование, проверяя файлы журнала. По умолчанию Rsnapshot регистрирует действия по резервному копированию в /var/log/rsnapshot.log.

cat /var/log/rsnapshot.log

Заключение

Rsnapshot – отличный выбор для управления резервным копированием в системах Linux. Благодаря эффективному использованию rsync вы можете легко создавать резервные копии файлов как локально, так и удаленно.

Зарубин Иван Эксперт по Linux и Windows

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

Похожие статьи

Комментарии (0)

Опубликовать