hostprofi.ru
Подобрать хостинг
Термин·буква R

RSYNC over SSH

краткое определение

RSYNC over SSH — инструмент синхронизации файлов с передачей только изменённых блоков поверх зашифрованного SSH-соединения. Передаёт 1-5% от полного объёма данных при инкрементальной синхронизации благодаря delta-алгоритму.

rsync (Remote Sync) — утилита синхронизации файлов и директорий с поддержкой инкрементальных передач. При использовании поверх SSH (rsync -avz -e ssh) данные шифруются. Delta-алгоритм (rdiff) вычисляет разницу на уровне блоков: при изменении 1 КБ в 1 ГБ файле передаётся только 1 КБ.

Как работает

Алгоритм rsync (Эндрю Трайджелл, 1996): получатель отправляет контрольные суммы блоков текущей версии файла → отправитель вычисляет какие блоки изменились → передаются только дельта-блоки. Это особенно эффективно для больших файлов с малыми изменениями (резервные копии баз данных, медиафайлы).

Основные флаги: -a (archive: рекурсивно, сохраняя права и временные метки), -v (verbose), -z (compress), --delete (удалить файлы у получателя, которых нет у отправителя), --exclude (исключить паттерн).

Типичная команда бэкапа: rsync -avz --delete /var/www/ user@backup-server:/backups/www/ — синхронизирует содержимое веб-директории на резервный сервер.

История

rsync создан Эндрю Трайджеллом (Andrew Tridgell) и Полом Маккерасом (Paul Mackerras) в 1996 году. Первоначально как часть диссертации Трайджелла в ANU. Версия 3.0 (2008) добавила инкрементальный обход директорий, ускорив работу с большими деревьями файлов. К 2024 году входит в стандартную поставку всех Linux-дистрибутивов.

Сценарии использования

  • Бэкап сайта: ежесуточная синхронизация на удалённый сервер.
  • Зеркало: синхронизация публичных репозиториев, CD-образов.
  • Деплой: обновление файлов сайта с минимальным трафиком.
  • Миграция: перенос данных между серверами с сохранением структуры.

Связь с хостингом

На VPS rsync over SSH — стандартный инструмент для ежесуточных бэкапов: rsync -avz /var/www /var/lib/mysql/backups user@backup-server:/backups/$(date +%Y-%m-%d)/. Запускается через systemd timer или cron. SFTP удобнее для интерактивной загрузки файлов, rsync — для автоматической синхронизации.

Ключевые отличия от похожих терминов

SCP — копирование через SSH без delta-алгоритма: передаёт файл целиком каждый раз. rsync передаёт только изменения. SFTP — интерактивный файловый менеджер по SSH, не оптимизирован для синхронизации. rsync + ssh — оптимальный выбор для автоматических бэкапов и деплоя.

Алгоритм delta-синхронизации

rsync передаёт только изменённые блоки файлов (rolling checksum). При первичной синхронизации — полная передача. При повторной — только дельта. Сжатие: -z. Прогресс: --progress. Без удаления старых файлов на приёмнике: без --delete.

Типичные сценарии

Деплой сайта: rsync -avz --exclude='.env' ./public/ user@server:/var/www/site/. Бэкап с hard links: rsync -avz --link-dest=/backups/prev /var/www/ /backups/current/. Синхронизация баз данных: дамп на источнике → rsync дампа → восстановление на цели.

rsync vs scp vs rclone

scp — простая копия без дельта-синхронизации. rsync — дельта-синхронизация для повторяемых операций. rclone — поддерживает 40+ провайдеров (S3, Google Drive, Dropbox), умеет шифрование. Для синхронизации больших директорий между серверами — rsync. Для облачного хранения — rclone.

Другие термины