Русская Википедия:Rsync
Шаблон:Lowercase Шаблон:Карточка программы
rsync (Шаблон:Lang-en) — программа для UNIX-подобных систем, которая эффективно выполняет синхронизацию файлов и каталогов в двух местах (необязательно локальных) с минимизированием трафика, используя кодирование данных при необходимости. Важным отличием rsync от многих других программ/протоколов является то, что зеркалирование осуществляется одним потоком в каждом направлении (а не по одному или несколько потоков на каждый файл). rsync может копировать или отображать содержимое каталога и копировать файлы, опционально используя сжатие и рекурсию. rsync передаёт только изменения файлов, что отражается на производительности программы.
Выпущен под лицензией GNU GPL.
Синтаксис
Подобно rcp и scp, rsync требует указания источника и назначения; любой из них может быть удалённым, но не оба одновременно.
Общий синтаксис:
rsync [OPTION] … SRC … [USER@]HOST:DEST
rsync [OPTION] … [USER@]HOST:SRC [DEST]
где SRC
— это файл или каталог (или список из нескольких файлов и каталогов) для копирования, DEST
— файл или каталог для копирования, а квадратные скобки указывают необязательные параметры.
Демон
rsyncd — демон, реализующий протокол rsync. По умолчанию использует TCP-порт 873.
Rsync также может быть запущен в режиме демона, который принимает следующие параметры:
--daemon
— запустить rsync как демон,--address=ADDRESS
— связаться с определённым адресом,--config=FILE
— определить конфигурацию rsyncd «rsyncd.conf»,--port=PORT
— указать порт подключения,--log-file=FILE
— переписать настройки логирования («log file»),--sockopts=OPTIONS
— указать TCP параметры,-h, --help
— посмотреть дополнительные опции (если указать после флага--daemon
).
Примеры
rsync -arv somedirectory otherplace
— сохранить все атрибуты, синхронизировать рекурсивно, «богатый» вывод.rsync -arv local/directory user@remote.server.address:/remote/directory/
— копирование из локального каталога в удалённый.rsync -arv user@remote.server.address:/remote/data local/directory/
— копирование из удалённого каталога в локальный.rsync -arv --progress user@remote.server.address:/remote/data local/directory/
— показать прогресс в процентах для каждого файла.rsync -arv --exclude={"*.jpg", "*.png"} user@remote.server.address:/remote/data local/directory/
— исключить все файлы с расширением .jpg и .png.rsync -arv --delete user@remote.server.address:/remote/data local/directory/
— удалить файлы в каталоге назначения, если в каталоге-источнике больше таких файлов нет.
Некоторые дополнительные функции rsync
- поддержка копирования ссылок, устройств, владельцев, групп и разрешений;
- exclude и exclude-from опции, похожие на GNU tar;
- режим исключения CVS для игнорирования тех же файлов, которые CVS игнорировал бы;
- может использовать любую прозрачную удаленную оболочку, включая ssh или rsh;
- не требует привилегий суперпользователя;
- конвейерная передача файлов для минимизации затрат времени;
- поддержка анонимных или аутентифицированных демонов rsync (идеально подходит для зеркалирования);
- поддержка тестового прогона.
Алгоритм
Утилита rsync использует алгоритм, разработанный австралийским программистом Эндрю Триджеллом для эффективной передачи структур (например, файлов) по коммуникационным соединениям в том случае, когда принимающий компьютер уже имеет отличающуюся версию этой структуры.
Принимающий компьютер разделяет свою копию файла на неперекрывающиеся куски фиксированного размера S и вычисляет контрольную сумму для каждого куска: MD4-хеш и более слабый кольцевой хеш, и отправляет их серверу, с которым синхронизируется.
Сервер, с которым синхронизируются, вычисляет контрольные суммы для каждого кусочка размера S в своей версии файла, в том числе перекрывающиеся куски. Вычисления производятся эффективно ввиду особого свойства кольцевого хеша: если кольцевой хеш байт от n до n + S − 1 равняется R, то кольцевой хеш байт от n + 1 до n + S может быть посчитан, исходя из R, байта n и байта n + S без необходимости учитывать байты, лежащие внутри этого интервала. Таким образом, если уже подсчитан кольцевой хеш байт 1—25, то для подсчета кольцевого хеша байт 2—26 используется предыдущее значение и байты 1 и 26.
Применение
rsync была создана как замена для rcp и scp. Одним из первых применений rsync стало зеркалирование или резервное копирование клиентских Unix-систем на центральный Unix-сервер с использованием rsync/ssh и обычной учётной записи Unix. С планировщиком задач, таким как cron, возможно организовать автоматизированное основанное на rsync зеркалирование по защищенному криптографически каналу между многими компьютерами и центральным сервером.
Приложения rsync
Program | Операционная система | Шаблон:Nowrap | Описание | ||
---|---|---|---|---|---|
Linux | macOS | Windows | |||
Back In TimeШаблон:Ref-en | Интегрируются в GNOME и KDE SC 4 и доступны непосредственно из репозиториев многих дистрибутивов Linux | ||||
BackupAssistШаблон:Ref-en | Прямое зеркало или с историей, VSS. | ||||
cwRsync | На основе Cygwin. | ||||
GrsyncШаблон:Ref-en | [1] | Графический интерфейс для rsync в Linux и Windows-системах | |||
GS RichCopy 360Шаблон:Ref-en | [2] | Предназначен только для рабочих станций MS Windows и серверов с поддержкой VSS. | |||
LuckyBackupШаблон:Ref-en | Он предоставляет графический интерфейс, основанный на кросс-платформенной библиотеке Qt |
Вариации rsync
- zsync — это инструмент, похожий на rsync, оптимизированный для множества загрузок в каждой версии файла. zsync используется дистрибутивами Linux, такими как Ubuntu, для распространения быстро меняющихся файлов бета-образа ISO. zsync использует протокол HTTP и файлы. zsync с предварительно рассчитанным скользящим хешем, чтобы минимизировать нагрузку на сервер и разрешить передачу различий для оптимизации сети.[3]
- Библиотека librsync, используемая rdiff, является независимой реализацией алгоритма rsync. Он не использует сетевой протокол rsync и не делится каким-либо кодом с приложением rsync. Он используется Dropbox, rdiff-backup, duplicity и другими утилитами.[4]
- rclone — это инструмент с открытым исходным кодом, вдохновленный rsync, который ориентирован исключительно на поставщиков облачных систем хранения. Он поддерживает более 10 различных поставщиков и предоставляет rsync-подобный интерфейс для резервного копирования локальных данных этим поставщикам.[5]
См. также
Примечания
Литература
Ссылки
- Официальный сайтШаблон:Ref-en
- Восстановление «битого» ISO-образа с помощью rsyncШаблон:Ref-ru
- Полезные рецепты при работе с rsyncШаблон:Ref-ru
- Использование Android в связке с Linux. Rsync — синхронизация и бекап файлов