Rsync
Rsync — утиліта для синхронізації файлів і резервного копіювання, що дозволяє мінімізувати трафік за рахунок інкрементального копіювання змін. Як транспорт можуть бути використані ssh, rsh або власний протокол rsync. Підтримується організація роботи анонімних rsync-серверів, оптимально відповідних для забезпечення синхронізації дзеркал. Важливою відмінністю rsync від багатьох інших програм/протоколів є те, що дзеркалювання здійснюється одним потоком в кожному напрямку (а не по одному або кілька потоків на кожен файл). rsync може копіювати або відображати вміст теки і копіювати файли, опціонально використовуючи стиснення і рекурсію.
Тип | синхронізація даних, резервне копіювання |
---|---|
Автор(и) | Andrew Tridgell, Paul Mackerras |
Розробник | Wayne Davison |
Перший випуск | 19 червня 1996[1] |
Стабільний випуск | 3.1.2 (21 грудня 2015 ) |
Репозиторій | git.samba.org/rsync.git |
Платформа | Unix-подібні, Windows |
Операційна система | UNIX-подібні операційні системи |
Мова програмування | C |
Стан розробки | активний |
Ліцензія | GNU GPLv3 |
Вебсайт | rsync.samba.org |
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 дзеркалювання криптографічно захищеним каналом між багатьма комп'ютерами та центральним сервером.
Виноски
- (19 June 1996). "<cola-liw-835153950-21793-0@liw.clinet.fi>#1/1 First release of rsync - rcp replacement". comp.os.linux.announce. (Google Groups). Retrieved on 2007-07-19.