Rsync

Тип |  утилита, сетевой протокол[вд], дифференциальный бэкап[вд] и передача данных
Разработчик |  Эндрю Триджелл
Написана на |  Си[2]
Операционная система  |  Unix-подобная операционная система
Первый выпуск |  19 июня 1996
Аппаратная платформа  |  Unix-подобная операционная система
Последняя версия |

* 3.4.1 (15 января 2025)[1]

Репозиторий |  github.com/RsyncProject/…
Лицензия |  GPL 3.0+[3]
Сайт |  rsync.samba.org (англ.)

rsync (англ. remote synchronization) — программа для UNIX-подобных систем, которая эффективно выполняет синхронизацию файлов и каталогов в двух местах (необязательно локальных) с минимизированием трафика, используя кодирование данных при необходимости. Важным отличием rsync от многих других программ/протоколов является то, что зеркалирование осуществляется одним потоком в каждом направлении (а не по одному или несколько потоков на каждый файл). rsync может копировать или отображать содержимое каталога и копировать файлы, опционально используя сжатие и рекурсию. rsync передаёт только изменения файлов, что отражается на производительности программы.

Выпущен под лицензией GNU GPL.

## Содержание

* 1 Синтаксис
* 2 Демон
* 3 Примеры
* 4 Некоторые дополнительные функции rsync
* 5 Алгоритм
* 6 Применение
* 7 Приложения rsync
* 8 Вариации rsync
* 9 См. также
* 10 Примечания
* 11 Литература
* 12 Ссылки

## Синтаксис

[править | править код]

Подобно 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`).

## Примеры

[править | править код]

1. `rsync -arv somedirectory otherplace` — сохранить все атрибуты, синхронизировать рекурсивно, подробный вывод информации в процессе работы.
2. `rsync -arv local/directory user@remote.server.address:/remote/directory/` — копирование из локального каталога в удалённый.
3. `rsync -arv user@remote.server.address:/remote/data local/directory/` — копирование из удалённого каталога в локальный.
4. `rsync -arv --progress user@remote.server.address:/remote/data local/directory/` — показать прогресс в процентах для каждого файла.
5. `rsync -arv --exclude={"*.jpg", "*.png"} user@remote.server.address:/remote/data local/directory/` — исключить все файлы с расширением .jpg и .png.
6. `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 в качестве бэкапов и для синхронизации данных между локальными и удалёнными системами, так как она позволяет быстро, эффективно и с минимальными ресурсами выполнять инкрементальные копирования, а также сохранять права доступа и метаданные файлов.

## Приложения rsync

[править | править код]

Program | Операционная система  | Бесплатное программное обеспечение | Описание

|
|
|

Linux | macOS | Windows
Back In Time (англ.) | Да | Нет | Нет | Да | Интегрируются в GNOME и KDE SC 4 и доступны непосредственно из репозиториев многих дистрибутивов Linux
BackupAssist (англ.) | Нет | Нет | Да | Нет | Прямое зеркало или с историей, VSS.
cwRsync | Нет | Нет | Да | Нет | На основе Cygwin.
Grsync (англ.) | Да | Да | Да[4] | Да | Графический интерфейс для rsync в Linux и Windows-системах
GS RichCopy 360 (англ.) | Нет | Нет | Да[5] | Нет | Предназначен только для рабочих станций MS Windows и серверов с поддержкой VSS.
LuckyBackup (англ.) | Да | Да | Да | Да | Он предоставляет графический интерфейс, основанный на кросс-платформенной библиотеке Qt

## Вариации rsync

[править | править код]

* zsync — это инструмент, похожий на rsync, оптимизированный для множества загрузок в каждой версии файла. zsync используется дистрибутивами Linux, такими как Ubuntu, для распространения быстро меняющихся файлов бета-образа ISO. zsync использует протокол HTTP и файлы. zsync с предварительно рассчитанным скользящим хешем, чтобы минимизировать нагрузку на сервер и разрешить передачу различий для оптимизации сети.[6]
* Библиотека librsync, используемая rdiff, является независимой реализацией алгоритма rsync. Он не использует сетевой протокол rsync и не делится каким-либо кодом с приложением rsync. Он используется Dropbox, rdiff-backup, duplicity и другими утилитами.[7]
* rclone — это инструмент с открытым исходным кодом, вдохновленный rsync, который ориентирован исключительно на поставщиков облачных систем хранения. Он поддерживает более 10 различных поставщиков и предоставляет rsync-подобный интерфейс для резервного копирования локальных данных этим поставщикам.[8]

## См. также

[править | править код]

* Remote Differential Compression (англ.)

## Примечания

[править | править код]

1. ↑ [rsync-announce rsync 3.4.1 released] — 2025.
2. ↑ The rsync Open Source Project on Open Hub: Languages Page — 2006.
3. ↑ NEWS
4. ↑ Grsync for Windows (неопр.). Дата обращения: 31 марта 2017. Архивировано 2 мая 2015 года.
5. ↑ GS RichCopy 360 Enterprise for Windows (неопр.). Дата обращения: 31 марта 2017. Архивировано 10 февраля 2017 года.
6. ↑ ZsyncCdImage - Community Help Wiki (неопр.). help.ubuntu.com. Дата обращения: 12 мая 2019. Архивировано 28 апреля 2019 года.
7. ↑ librsync: librsync (неопр.). librsync.github.io. Дата обращения: 12 мая 2019. Архивировано 25 января 2019 года.
8. ↑ rclone - rsync for cloud storage (неопр.). rclone.org. Дата обращения: 12 мая 2019. Архивировано 17 июня 2020 года.

## Литература

[править | править код]

* Preston, W. C. Backup & Recovery: Inexpensive Backup Solutions for Open Systems. — O'Reilly Media, 2007. — P. 114-118. — 768 p. — ISBN 9780596555047.

## Ссылки

[править | править код]

* Официальный сайт (англ.)
* Восстановление «битого» ISO-образа с помощью rsync (рус.)
* Полезные рецепты при работе с rsync (рус.)
* Использование Android в связке с Linux. Rsync — синхронизация и бекап файлов

Схемы URI

Официальные|

* aaa
* aaas
* about
* acap
* cap
* cid
* crid
* data
* dav
* dict
* dns
* fax
* file
* ftp
* geo
* go
* gopher
* h323
* http
* https
* im
* imap
* iri
* ldap
* mailto
* mid
* news
* nfs
* nntp
* pop
* pres
* rtsp
* sip
* sips
* snmp
* tel
* telnet
* urn
* url
* view-source
* wais
* xmpp

Неофициальные|

* aim
* bolo
* btc
* bzr
* callto
* chrome
* cvs
* cs2d
* daap
* ed2k
* ed2kftp
* feed
* fish
* git
* gizmoproject
* iax2
* irc
* ircs
* itms
* lastfm
* ldaps
* magnet
* mms
* msnim
* psyc
* rsync
* secondlife
* skype
* ssh
* svn
* sftp
* smb
* sms
* soldat
* steam
* tg
* webcal
* xfire
* ymsgr

Для улучшения этой статьи желательно:

* Добавить иллюстрации.
* Найти и оформить в виде сносок ссылки на независимые авторитетные источники, подтверждающие написанное.
* Проставить сноски, внести более точные указания на источники.

После исправления проблемы исключите её из списка. Удалите шаблон, если устранены все недостатки.

|