Установка 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