Как синхронизировать два веб сервера с помощью Rsync

Управление веб-сервером требует особого внимания к сохранности данных и возможности их быстрого восстановления в случае сбоя. Одним из самых надежных методов резервного копирования и зеркалирования данных является использование утилиты rsync. Этот инструмент позволяет синхронизировать файлы и каталоги между двумя серверами, что делает его идеальным для создания резервных копий и дубликатов данных вашего веб-сервера. В этой статье мы подробно расскажем, как синхронизировать ваш веб сервер с резервным сервером с помощью rsync. Мы также рассмотрим, как настроить автоматический вход без пароля и использовать планировщик задач cron для регулярного резервного копирования.

Как синхронизировать два веб сервера с помощью Rsync
Как синхронизировать два веб сервера с помощью Rsync

Что вам понадобится для синхронизации двух веб серверов с помощью Rsync

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

1. Два сервера

  • Основной веб-сервер: это сервер, на котором размещен ваш сайт или приложение. В нашем примере его IP-адрес — 192.168.0.100, а имя хоста — webserver.example.com.
  • Резервный сервер: это сервер, на который будут копироваться данные с основного сервера. Его IP-адрес — 192.168.0.101, а имя хоста — backup.example.com.

2. Установленное программное обеспечение

Убедитесь, что на обоих серверах установлен rsync. Если он не установлен, выполните команду в зависимости от вашей операционной системы:

Для дистрибутивов Debian/Ubuntu:

sudo apt install rsync

Дистрибутивы RHEL/CentOS:

sudo yum install rsync

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

Gentoo Linuxsudo emerge -a sys-apps/rsync
Alpine Linuxsudo apk add rsync
Arch Linux sudo pacman -S rsync
OpenSUSEsudo zypper install rsync
FreeBSDsudo pkg устанавливает rsync

3. Доступ по SSH

Для автоматизации процесса синхронизации необходимо включить доступ по протоколу SSH между двумя серверами. Это позволит настроить вход без пароля с помощью SSH-ключей, что упростит процесс.

Шаг 1: Настройка входа по SSH без пароля

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

Генерация SSH-ключей

Войдите на основной веб-сервер (webserver.example.com) и создайте SSH-ключи:

ssh-keygen -t rsa -b 2048

Не забудьте выбрать расположение файла по умолчанию (обычно это ~/.ssh/id_rsa) и оставьте кодовую фразу пустой для удобства.

Копирование открытого ключа на резервный сервер

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

ssh-copy-id user@192.168.0.101

Замените user на ваше имя пользователя на резервном сервере. Вам будет предложено ввести пароль один раз для завершения процесса.

Проверка соединения

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

ssh user@192.168.0.101

Если вы можете войти в систему без ввода пароля, значит настройка прошла успешно.

Синхронизация данных веб-сервера с помощью Rsync

Теперь, когда у нас настроен вход по SSH без пароля, мы можем использовать rsync для синхронизации данных веб-сервера с резервным сервером.

Определение каталога для резервного копирования

Данные вашего веб-сервера обычно хранятся в каталоге /var/www/html/. Мы будем использовать этот каталог для создания резервной копии.

Базовая команда Rsync

Для однократного резервного копирования выполните следующую команду на основном веб-сервере:

rsync -avz /var/www/html/ user@192.168.0.101:/путь/к/каталогу/резервной/копии

Объяснение параметров команды:

  • -a — архивный режим, который сохраняет разрешения файлов, временные метки и другие свойства.
  • -v — подробный вывод, чтобы вы могли видеть, какие файлы передаются.
  • -z — включает сжатие данных для уменьшения объема передаваемой информации.

Пример синхронизации

Для создания резервной копии каталога /var/www/html/ на резервном сервере в папку /backup/webserver, используйте команду:

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

Этот параметр удалит файлы в каталоге резервной копии, которых больше нет на веб сервере, обеспечивая полное соответствие между каталогами.

Автоматизация резервного копирования с помощью Cron

Чтобы обеспечить регулярное резервное копирование, можно запланировать автоматическое выполнение команды rsync с помощью cron.

Настройка задания cron

Откройте файл crontab на основном веб сервере:

sudo crontab -e

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

0 0 * * * rsync -avz --delete /var/www/html/ user@192.168.0.101:/backup/webserver

Далее просто сохраните файл crontab и выйдите из редактора.

Теперь задание cron будет выполняться автоматически в полночь каждый день, обеспечивая регулярное обновление резервных копий.

Шаг 4: Проверка резервной копии

После настройки задания cron важно убедиться, что процесс резервного копирования работает корректно:

Проверка системного журнала

Проверьте системный журнал на наличие записей о выполнении задания cron:

grep CRON /var/log/syslog

Войдите на резервный сервер и проверьте файлы в каталоге /backup/webserver, чтобы убедиться, что они совпадают с файлами на основном веб-сервере.

Тестирование процесса восстановления

Для тестирования процесса можно удалить файл на основном сервере и проверить, будет ли он удалён из каталога резервных копий после следующего запуска rsync.

Заключение

Синхронизация веб-серверов с помощью rsync является мощным и эффективным способом обеспечения сохранности ваших данных и быстрого восстановления их при необходимости. Настроив автоматический вход по SSH и используя cron для планирования задач, вы сможете регулярно создавать резервные копии без ручного вмешательства, что гарантирует актуальность ваших данных и доступность сайта даже в случае сбоя основного сервера.Такой подход к управлению данными не только повышает уровень безопасности вашего проекта, но и позволяет вам сосредоточиться на его развитии вместо беспокойства о возможных потерях информации. Теперь у вас есть все необходимые шаги для настройки эффективной системы резервного копирования! Не забывайте периодически проверять состояние ваших резервных копий и тестировать процесс восстановления данных — это поможет вам быть уверенным в надежности вашей системы защиты информации. Если нужно добавить еще больше деталей или конкретизировать какие-то моменты, дайте знать!

Nazario

Я — Nazario, создатель и автор сайта linuxwin.ru, специализируюсь на информационных технологиях с акцентом на системное администрирование Linux и Windows, веб-разработку и настройку различных систем.

Linux и Windows
Выскажите своё мнение или присоединяйтесь к обсуждению:

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