rsync — это утилита для синхронизации и передачи файлов между локальными и удалёнными системами, разработанная для эффективной передачи только изменённых данных. Программа использует алгоритм дельта-кодирования, который сравнивает содержимое файлов на стороне отправителя и приёмника, передавая лишь отличающиеся блоки, что снижает объём пересылаемых данных и ускоряет обновление больших наборов файлов. rsync поддерживает как одноразовую синхронизацию, так и периодическое обновление каталогов, широко применяется для резервного копирования, зеркалирования и распределённого поддержания файловых коллекций.
Утилита появилась как проект в среде UNIX-подобных систем и со временем получила порты и реализации для других платформ. rsync может работать поверх SSH или собственных транспортных протоколов, обеспечивая как защищённую передачу, так и более простые одноранговые вариации. Программа предоставляет множество опций для управления поведением при синхронизации: фильтрация файлов по шаблонам, сохранение прав доступа и временных меток, управление пропуском и удалением файлов на целевой стороне и режимы работы в фоновом или интерактивном режиме.
- Дельта-алгоритм передачи — пересылает только изменённые части файлов, экономя пропускную способность.
- Поддержка удалённого транспорта — может использовать SSH или собственный rsync-демон для подключения к удалённым хостам.
- Сохранение метаданных — сохраняет права доступа, владельцев, группы, временные метки и символьные ссылки при необходимости.
- Фильтрация и исключения — гибкая система включения/исключения файлов и директорий по шаблонам.
- Режим зеркалирования — способна поддерживать точную копию источника на приёмнике, включая опции удаления устаревших файлов.
- Инкрементальные и планиpуемые бэкапы — часто используется в сценариях резервного копирования с сохранением предыдущих версий через жёсткие ссылки или отдельные каталоги.
- Многоуровневая оптимизация — включает возможности сжатия потоков данных, ограничения пропускной способности и параллельной передачи при интеграции с другими инструментами.