Установка RSYNC
Инструкция по установке и настройке Remote Synchronization (RSYNC) для синхронизации данных
rsync (Remote Synchronization) — кроссплатформенное консольное приложение для синхронизации данных с минимальным расходом трафика. Оно широко применяется для резервного копирования, миграции и зеркалирования данных между серверами.
Например, с помощью rsync можно переносить проекты с виртуального хостинга на VPS, синхронизировать каталоги между несколькими выделенными серверами, поддерживать актуальные копии файлов внутри инфраструктуры.
Установка 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/
Исключение каталогов
sudo rsync -avh --exclude='dir/' --exclude='dir/tmp/' /var/www/ /root/backup/www/
Позволяет исключить ненужные поддиректории при синхронизации.
Перенос файлов с удалённого сервера (с удалением источника)
sudo rsync -avh --remove-source-files root@192.168.1.50:/var/www/ /var/www/
Копирование базы данных MySQL на другой диск
rsync -vrplogDtH --progress /var/lib/mysql/ /newhdd/var/lib/mysql/
Полезные параметры rsync
- -v — подробный режим (verbose)
 - -r — рекурсивное копирование (recursive)
 - -a — режим архивирования (сохраняет права, симлинки и структуру)
 - -b — создание резервных копий (backup)
 - -c — проверка по контрольным суммам (checksum)
 - --delete — удаление файлов, отсутствующих в источнике
 - -h — человекочитаемый вывод (human-readable)
 - -n — тестовый запуск без изменений (dry-run)
 - -p — сохранение прав (permissions)
 - -z — сжатие данных при передаче (compress)
 - -H — сохранение жёстких ссылок (hard links)
 - -x — не выходить за пределы файловой системы (one-file-system)
 
Полный список доступен в справке:
man rsync