Синхронизация файлов

Синхронизация файлов (или каталогов) — это процесс сопоставления содержимого двух или более мест хранения информации.

Когда пользователь добавляет, изменяет или удаляет файл в месте A, процесс синхронизации между A и B добавит, изменит или удалит тот же файл в месте B, чтобы содержимое двух каталогов оставалось идентичным[1].

Одно- и двунаправленная технология

Синхронизация файлов может быть однонаправленной или двунаправленной. В случае однонаправленной синхронизации изменения применяются только из основного (исходного) места во вторичное (целевое) и только в одном направлении; при этом никаких изменений из вторичного места в основное не производится.

Однонаправленное копирование не заменяет резервное копирование: содержимое не сжимается, может быть использовано непосредственно как замена исходному каталогу, и главное — если файл удаляется, он удаляется в обоих местах и никакой резервной копии не сохраняется.

В двунаправленной синхронизации, напротив, изменения применяются в обоих направлениях, поддерживая содержимое в двух местах в абсолютном соответствии.

Двунаправленная синхронизация

Существуют различные принципы работы, производительность которых зависит главным образом от поставленной задачи.

  • Единый сервер: программа синхронизации размещается на одной машине. В этом случае пользователь указывает основное и вторичное место хранения.

Для эффективной работы этого принципа необходима высокая скорость передачи данных между двумя указанными местоположениями. Так, в условиях WAN скорость передачи между двумя площадками может быть особенно низкой, что делает синхронизацию долгой при больших объёмах данных, а также может вызвать насыщение канала связи.

  • Двойной сервер: программа синхронизации установлена на каждой площадке. Такая система больше подходит для среды WAN. Каждый сервер отслеживает локальные изменения и затем отправляет информацию другому серверу. В этом случае пропускная способность расходуется только на изменённые данные.

Однако эта техника эффективна лишь в среде с двумя серверами, подлежащими синхронизации.

  • Мультисервер: этот режим позволяет соединять множество серверов. Обычно используется одноранговый (P2P) режим.

Одна из основных проблем этой схемы возникает, когда один и тот же файл изменяется одновременно на нескольких сайтах, что приводит к конфликту при синхронизации. Для предотвращения конфликтов могут применяться механизмы блокировки файлов, чтобы пользователь не мог изменить файл, уже открытый на другом узле.

Протоколы передачи при синхронизации

Эти протоколы автоматизируют процесс копирования данных и загрузки.

Синхронизация файлов

Протоколы реализуются между различными носителями данных на многих устройствах с целью копирования файлов, которые могут быть воспроизводимыми (изображения, звук, видео) или нет (служебные файлы). Устройствами могут выступать медиаплеер, подключённый по Wi-Fi или Ethernet к компьютеру, либо копирование файлов из локальной папки на DVD для резервного копирования.

Синхронизация с КПК

Подобные программы синхронизации обеспечивают обмен данными типа Персональный информационный менеджер между компьютером и портативным устройством (карманный компьютер).

Для систем Windows компанией Microsoft была создана технология ActiveSync (англ. ActiveSync). Она позволяет с помощью кабеля или Bluetooth синхронизировать данные, управляемые Outlook, а также закладки, файлы и прочие данные.

Для систем Mac синхронизация использует протокол iSync, поддерживаемый совместимыми телефонами и КПК на базе Palm OS.

Синхронизация в телефонии

Синхронизация может быть проводной (USB-кабель) или беспроводной (IK и Bluetooth). Каждый телефон реализует определённый набор профилей, например, стандарт Bluetooth A2DP (звук), AVCR (управление воспроизведением), что позволяет использовать телефон как аудиоплеер, либо через профиль OBEX обмениваться данными между ПИМ. Bluetooth поддерживает передачу данных (факс и интернет) согласно коммуникационным стандартам сотовых телефонов.

Синхронизация мультимедийных файлов

Синхронизация делает процесс копирования файлов мультимедиа между компьютером и портативным медиаплеером прозрачным для пользователя. Такое программное обеспечение строит списки ссылок на медиафайлы для копирования на устройство. Медиаплееры могут использоваться не только как проигрыватели, но и как устройства хранения данных. См. также Медиаплеер.

Свободные программы

Название Протокол Язык разработки Платформа Тип лицензии Последняя версия
англ. Conduit различные Python Linux, Unix GPL 0.3.17 (21 января 2010)
DirSync Pro файловая система Java Windows, Linux, Mac OS X GPL 1.54b1 (28 декабря 2018)
FreeFileSync файловая система,
FTP, SFTP, Google Drive
C++ Windows, Linux, Mac GPL 11.3 (11 июня 2021)
FullSync файловая система или FTP Java Windows, Linux GPL2 0.10.4 (5 апреля 2016)
luckyBackup rsync C++ Unix, Linux, Mac OS X GPL v3 0.5.0 (18 ноября 2018)
rsync rsync C Unix, Linux, Mac OS X, Windows, Cygwin GPL 3.2.0 (19 июня 2020)
Syncthing файловая система Go Windows, Linux, OS X, Android, другие Unix MPL 2.0 1.11.1 (3 ноября 2020)
Synkron файловая система C++ Windows, Linux, OS X, другие Unix GPL v2 1.6.2 (25 января 2011)
Unison аналог rsync; использует SSH как транспортный протокол OCaml Windows, Linux, OS X, другие Unix GPL 2.51.2 (28 января 2018)
WinSCP (Secure) FTP C++ Windows GPL 5.17.8 (15 октября 2020)

Примечания