При управлении веб-сервером очень важно обеспечить сохранность данных и возможность их быстрого восстановления в случае сбоя. Одним из самых надежных способов резервного копирования и зеркалирования данных веб-сервера является использование Rsync.
Инструмент rsync помогает синхронизировать файлы и каталоги между двумя серверами, поэтому он идеально подходит для создания резервных копий и зеркал данных вашего веб-сервера.
В этой статье мы расскажем вам о том, как синхронизировать веб-сервер с сервером резервного копирования с помощью rsync. Мы также настроим беспарольный вход для автоматизации процесса синхронизации с помощью cron для резервного копирования по расписанию.
Предварительные условия
Прежде чем мы начнем, убедитесь, что у вас есть следующее:
Два сервера
- Основной веб-сервер: IP-адрес
192.168.0.100, имя хостаwebserver.example.com. - Сервер резервного копирования: IP-адрес
192.168.0.101, имя хостаbackup.example.com.
Установленное программное обеспечение
На обоих серверах должен быть установлен rsync, если его нет, вы можете установить его, запустив:
sudo apt install rsync [On Debian, Ubuntu and Mint] sudo yum install rsync [On RHEL/CentOS/Fedora and Rocky/AlmaLinux] sudo emerge -a sys-apps/rsync [On Gentoo Linux] sudo apk add rsync [On Alpine Linux] sudo pacman -S rsync [On Arch Linux] sudo zypper install rsync [On OpenSUSE] sudo pkg install rsync [On FreeBSD]h4. SSH-доступ
Между двумя серверами должен быть включен SSH-доступ, который позволит настроить беспарольный вход с использованием SSH-ключей для автоматизации работы.
Шаг 1: Настройка беспарольного SSH-логина
Чтобы автоматизировать процесс синхронизации с помощью cron, нам нужно настроить беспарольный SSH-логин с веб-сервера (Главный сервер) на Сервер резервного копирования, что позволит запускать rsync без необходимости каждый раз вводить пароль.
Войдите на Главный веб-сервер (webserver.example.com) и сгенерируйте SSH-ключи, не забудьте принять расположение файлов по умолчанию и оставить парольную фразу пустой.
ssh-keygen -t rsa -b 2048
Затем с помощью команды ssh-copy-id скопируйте открытый ключ на сервер резервного копирования:
ssh-copy-id user@192.168.0.101
Замените user именем пользователя на Сервере резервного копирования. Вам будет предложено ввести пароль один раз, но после этого будет установлен беспарольный вход.
Наконец, проверьте соединение, войдя в систему с основного веб-сервера на резервный сервер:
ssh user@192.168.0.101
Если вы можете войти в систему без ввода пароля, значит, настройка выполнена успешно.
Шаг 2: Синхронизация данных веб-сервера с помощью Rsync
Теперь, когда мы настроили SSH без пароля, мы можем использовать rsync для синхронизации данных веб-сервера с сервером резервного копирования. Данные веб-сервера обычно хранятся в каталоге /var/www/html/, который мы будем использовать для резервного копирования и зеркалирования.
Основная команда Rsync
Чтобы выполнить одноразовое Резервное копирование, выполните следующую команду на Главном веб-сервере (webserver.example.com):
rsync -avz /var/www/html/ user@192.168.0.101:/path/to/backup/directory
Пояснение к приведенной выше команде:
-aозначает архивный режим, который сохраняет права доступа, временные метки и другие свойства файлов.c-vвключает подробный вывод, чтобы вы могли видеть, какие файлы передаются.-zвключает сжатие для уменьшения размера передаваемых данных.
Синхронизация файлов с каталогом резервного копирования
Замените /path/to/backup/directory реальным путем на сервере резервного копирования, где вы хотите хранить резервную копию.
Например:
rsync -avz /var/www/html/ user@192.168.0.101:/backup/webserver
Зеркальное отображение каталога веб-сервера
Если вы хотите зеркалировать каталог (т. е. сделать резервную копию точно такой же, как исходная), используйте параметр --delete:
rsync -avz --delete /var/www/html/ user@192.168.0.101:/backup/webserver
Это удалит все файлы в каталоге резервной копии, которые больше не присутствуют на веб-сервере, обеспечив идентичность обоих каталогов.
Шаг 3: Автоматизация резервного копирования с помощью Cron
Чтобы обеспечить регулярное резервное копирование, мы можем запланировать автоматическое выполнение команды rsync с помощью cron. Таким образом, процесс резервного копирования будет выполняться в определенное время, например, каждый день в полночь.
Откройте файл crontab на Главном веб-сервере (webserver.example.com), выполнив команду:
crontab -e
Чтобы запланировать запуск резервного копирования каждый день в полночь, добавьте в crontab следующую строку:
0 0 * * * rsync -avz --delete /var/www/html/ user@192.168.0.101:/backup/webserver
Сохраните файл crontab и выйдите. Теперь задание cron будет запускаться автоматически в 00:00 каждый день. Вы можете настроить время по своему усмотрению.
Шаг 4: Проверка резервного копирования
После того как задание cron настроено, важно убедиться, что резервное копирование работает правильно, выполнив следующие проверки.
Вы можете проверить системный журнал, чтобы убедиться, что задание cron выполняется как положено:
grep CRON /var/log/syslog
Войдите на Сервер резервного копирования (backup.example.com) и проверьте, совпадают ли файлы в каталоге /backup/webserver с файлами на основном веб-сервере (/var/www/html/).
Вы также можете провести тест, удалив файл на основном веб-сервере и проверив, что он будет удален из каталога резервной копии после следующего запуска rsync.
Заключение
Синхронизация веб-серверов с помощью rsync для резервного копирования и зеркалирования – это мощный и эффективный способ обеспечить Безопасность и легкость восстановления данных.
Настроив SSH-логин без пароля и автоматизировав процесс с помощью cron, вы сможете регулярно выполнять резервное копирование без какого-либо ручного вмешательства.
Такая настройка позволяет поддерживать актуальные резервные копии данных веб-сервера и гарантирует, что ваш сайт останется доступным даже в случае сбоя сервера.




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