Поиск по сайту:

rsnapshot: утилита резервного копирования на основе rsync для Linux


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:

exclude_file    /data/backup/exclude.txt

После настройки Rsnapshot проверьте правильность настройки, выполнив:

sudo rsnapshot configtest

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

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

sudo rsnapshot hourly

Автоматизация снимка снимка с помощью 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" [email 

Мониторинг резервных копий снимков состояния

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

cat /var/log/rsnapshot.log
Заключение

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

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