Rsync

rsync
Типсинхронізація даних, резервне копіювання
АвторAndrew Tridgell, Paul Mackerras
РозробникWayne Davison
Перший випуск19 червня 1996[1]
Стабільний випуск3.1.2 (21 грудня 2015; 8 років тому (2015-12-21))
ПлатформаUnix-подібні, Windows
Операційна системаUNIX-подібні операційні системи
Мова програмуванняC
Стан розробкиактивний
ЛіцензіяGNU GPLv3
Репозиторійgithub.com/RsyncProject/rsync
Вебсайтrsync.samba.org

Rsync — утиліта для синхронізації файлів і резервного копіювання, що дозволяє мінімізувати трафік за рахунок інкрементального копіювання змін. Як транспорт можуть бути використані ssh, rsh або власний протокол rsync. Підтримується організація роботи анонімних rsync-серверів, оптимально відповідних для забезпечення синхронізації дзеркал. Важливою відмінністю rsync від багатьох інших програм/протоколів є те, що дзеркалювання здійснюється одним потоком в кожному напрямку (а не по одному або кілька потоків на кожен файл). rsync може копіювати або відображати вміст теки і копіювати файли, опціонально використовуючи стиснення і рекурсію.

rsyncd — демон, який реалізує протокол rsync. За замовчуванням використовує TCP порт 873.

Випущений під ліцензією GNU GPL, rsync є вільним програмним забезпеченням.

Алгоритм

Утиліта rsync використовує алгоритм, розроблений австралійським програмістом Ендрю Триджеллом, для ефективної передачі структур (наприклад, файлів) по комунікаційним каналам в тому випадку, коли приймаючий комп'ютер вже має відмінну версію цієї структури. Приймаючий комп'ютер розділяє свою копію файлу на неперетинні шматки фіксованого розміру S, і обчислює контрольну суму для кожного шматка: MD4-хеш і слабший кільцевий хеш (rolling checksum), і відправляє їх серверу, з яким синхронізується.

Сервер, з яким синхронізуються, обчислює контрольні суми для кожного шматочка розміру S у своїй версії файлу, в тому числі перетинні шматки. Це може бути ефективно підраховано через особливі властивості кільцевого хешу (rolling checksum): якщо кільцевий хеш байтів від 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 дзеркалювання криптографічно захищеним каналом між багатьма комп'ютерами та центральним сервером.

Виноски

  1. Tridgell, Andrew (19 June 1996). First release of rsync - rcp replacement. Група новин: comp.os.linux.announce. Usenet: [email protected]. Архів оригіналу за 8 листопада 2011. Процитовано 19 липня 2007.

Посилання

  • Офіційний сайт