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