Rsync
Тип утилита, сетевой протокол[d], дифференциальный бэкап[вд] и передача данных
Разработчик Эндрю Триджелл
Написана на Си[2]
Операционная система Unix-подобная операционная система
Первый выпуск 19 июня 1996
Аппаратная платформа Unix-подобная операционная система
Последняя версия
Репозиторий github.com/RsyncProject/…
Лицензия GPL 3.0+[3]
Сайт rsync.samba.org (англ.)

rsync (англ. remote synchronization) — программа для 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).

Примеры

[править | править код]
  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

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

Алгоритм

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

Утилита 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 Операционная система Бесплатное программное обеспечение Описание
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

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

См. также

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

Примечания

[править | править код]
  1. NEWS for rsync 3.3.0 (6 Apr 2024) — 2024.
  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 года.

Литература

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

Ссылки

[править | править код]
Для улучшения этой статьи желательно: Добавить иллюстрации.Найти и оформить в виде сносок ссылки на независимые авторитетные источники, подтверждающие написанное.Проставить сноски, внести более точные указания на источники.После исправления проблемы исключите её из списка. Удалите шаблон, если устранены все недостатки.