Установка RSYNC
Пошаговое руководство по установке и настройке Remote Synchronization (RSYNC) для синхронизации данных.
rsync (Remote Synchronization) — кроссплатформенное консольное приложение для синхронизации данных с минимальным расходом трафика. Оно широко применяется для резервного копирования, миграции и зеркалирования данных между серверами.
Например, с помощью rsync можно переносить проекты с виртуального хостинга на VPS, синхронизировать каталоги между несколькими выделенными серверами, поддерживать актуальные копии файлов внутри инфраструктуры.
Установка rsync
Для установки модуля rsync на сервере выполните соответствующие команды в зависимости от операционной системы.
Для CentOS:
yum -y install rsync
Для Debian/Ubuntu:
sudo aptitude install rsync
Примеры использования rsync
Локальная синхронизация
sudo rsync -avh --delete /var/www/ /root/backup/www/
Эта команда синхронизирует содержимое каталога /var/www/ с /root/backup/www/, удаляя файлы, которых больше нет в источнике. Это полезно для создания зеркала директории.
Синхронизация на удалённый сервер
sudo rsync -avh --delete /var/www/ root@192.168.1.50:/root/backup/www/
В этом примере файлы будут скопированы на другой сервер по SSH. В этом случае для выполнения синхронизации необходима установка rsync на обоих серверах.
Синхронизация с удалённого сервера на локальный
sudo rsync -avh root@192.168.1.50:/var/www/ /root/backup/www/
Этот пример показывает синхронизацию данных с удалённого сервера на локальную машину. С помощью этого можно перенести файлы с другого сервера.
Синхронизация через SSH с нестандартным портом
sudo rsync -avh -e "ssh -p 1111" root@192.168.1.50:/var/www/ /root/backup/www/
Если SSH-сервер настроен на нестандартный порт, например 1111, используйте параметр -e для указания порта. Этот пример позволит синхронизировать файлы через SSH на другом порту.
Исключение каталогов
sudo rsync -avh --exclude='dir/' --exclude='dir/tmp/' /var/www/ /root/backup/www/
В данном примере файлы из каталогов dir и dir/tmp будут исключены из синхронизации. Это полезно, если вы хотите исключить временные или ненужные данные из резервного копирования.
Перенос файлов с удалённого сервера (с удалением источника)
sudo rsync -avh --remove-source-files root@192.168.1.50:/var/www/ /var/www/
Этот пример копирует файлы с удалённого сервера и одновременно удаляет их из исходной директории, что полезно при переносе данных с сервера на сервер.
Копирование базы данных MySQL на другой диск
sudo rsync -vrplogDtH --progress /var/lib/mysql/ /newhdd/var/lib/mysql/
Этот пример используется для копирования всей базы данных MySQL, включая её структуру и файлы. Используется ключ --progress, чтобы отслеживать ход передачи.
Часто используемые параметры и флаги rsync
- -v — подробный режим (verbose), который выводит дополнительную информацию о процессе копирования.
- -r — рекурсивное копирование (recursive), которое используется для копирования каталогов.
- -a — режим архивирования (archive), сохраняет права доступа, симлинки, временные метки и структуру каталогов.
- -b — создание резервных копий (backup), создаёт копии изменённых файлов перед их заменой.
- -c — проверка по контрольным суммам (checksum), гарантирует, что данные были синхронизированы корректно.
- --delete — удаление файлов, которые больше не существуют в исходной папке.
- -h — человекочитаемый вывод (human-readable), выводит размеры файлов в удобном для восприятия формате (например, в мегабайтах).
- -n — тестовый запуск без изменений (dry-run), позволяет увидеть, что будет сделано, без выполнения.
- -p — сохранение прав (permissions), гарантирует, что права доступа к файлам сохранятся.
- -z — сжатие данных при передаче (compress), что помогает уменьшить объём передаваемых данных.
- -H — сохранение жёстких ссылок (hard links), если они имеются в исходных данных.
- -x — не выходить за пределы файловой системы (one-file-system), ограничивает копирование только одной файловой системой.
Полный список доступных опций можно найти в справке:
man rsync
Помощь
Если у вас возникли вопросы или требуется помощь, пожалуйста, свяжитесь с нами через систему тикетов — мы обязательно вам поможем!