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 вы можете легко создавать резервные копии файлов как локально, так и удаленно.
Комментарии (0)