# Synchronisation de fichiers

La synchronisation de fichiers (ou de répertoires) est le processus permettant de faire correspondre les contenus de deux (ou plus) emplacements de stockage.
Lorsqu'un utilisateur ajoute, modifie, ou supprime un fichier à l'endroit A, le processus de synchronisation entre A et B ajoutera, modifiera, ou supprimera le même fichier à l'endroit B afin que les contenus des deux répertoires restent bien des copies conformes

## Technologie uni- ou bidirectionnelle

La synchronisation de fichiers peut être à sens unique (unidirectionnelle) ou bidirectionnelle (à deux sens). Dans le cas d'une synchronisation à sens unique, les modifications sont appliquées seulement d'un endroit primaire (source) à un endroit secondaire (cible) et dans une seule direction, mais aucune modification n'est effectuée de l'endroit secondaire à l'endroit primaire.
Une copie unidirectionnelle ne répond pas aux mêmes besoins qu'un backup : les contenus ne sont pas compressés, sont utilisables directement en lieu et place du répertoire d'origine, et surtout quand un fichier est effacé, il l'est aux deux endroits et aucune copie de secours n'en existe.
Dans la synchronisation bidirectionnelle, au contraire, des modifications sont appliquées dans les deux directions, maintenant les contenus aux deux endroits parfaitement identiques.

### Synchronisation bidirectionnelle

Différents principes de fonctionnement existent, leurs performances dépendent principalement de l'objectif recherché.
* Serveur unique : le programme de synchronisation est ici présent sur une seule machine. L'utilisateur indique dans ce cas l'endroit primaire et l'endroit secondaire.
Pour bien fonctionner, ce principe nécessite que la vitesse de transaction des données entre les deux endroits spécifiés soit élevée. En effet, dans le cas d'un environnement de type WAN, la vitesse de transaction entre les deux sites est particulièrement lente, la synchronisation est donc très longue lorsque le volume de données à synchroniser est important, et l'occupation de la bande passante peut saturer le lien.
* Double serveur : dans ce cas, le programme de synchronisation est présent sur chacun des sites. Ce système est plus adapté dans un environnement de type WAN. En effet, chacun des serveurs surveille les modifications apportées en local, et envoie ensuite les informations à l'autre serveur. La bande passante utilisée n'est alors relative qu'aux données modifiées.
Cette technique ne fonctionne que dans un environnement où seuls deux serveurs sont à synchroniser.
* Multi-serveur : ce mode permet de connecter une multitude de serveurs. Le mode utilisé est celui du Peer-to-Peer (P2P).
Une des principales difficultés reste lorsqu'un fichier est en même temps modifié sur plusieurs sites, ce qui entraîne un conflit lors de la synchronisation. Toutefois, des mécanismes de blocage d'accès au fichier permettent d'éviter à un utilisateur de modifier un fichier déjà ouvert sur un autre site.

## Les protocoles de transport utilisés lors de la synchronisation

Ces protocoles sont l'automatisation du copier-coller et du téléchargement.

## Synchronisation de fichiers

Ces protocoles sont mis en place entre des supports de stockage présents dans de nombreux périphériques dans le but de copier des fichiers qui vont être rendus (images, sons, vidéos...) ou non (fichiers informatifs). Les périphériques peuvent être un lecteur multimedia connecté en Wi-Fi ou ethernet à un ordinateur, la copie des fichiers présents localement dans un répertoire vers un DVD dans un but de sauvegarde.

## Synchronisation avec PDA

Les logiciels de synchronisation de ce type gèrent les données de type Gestionnaire d’informations personnelles entre un ordinateur et un périphérique portable (PDA).
Pour les systèmes Windows, Microsoft a créé la norme activeSync. Elle permet via un câble ou bluetooth de synchroniser les données gérées par Outlook ainsi que les favoris, les fichiers et les données gérées par le logiciel.
Pour les systèmes Mac, la synchronisation utilise le protocole iSync supporté par les téléphones compatibles iSync et les PDA sous Palm OS.

## Synchronisation en téléphonie

La synchronisation est filaire (câble usb) ou sans fil (IR et bluetooth). Chaque téléphone implémente quelques profils permettant, comme la norme bluetooth A2DP (son) AVCR (commande) de se servir d'un téléphone comme d'un baladeur ou profil OBEX pour échanger des informations entre gestionnaires d’informations personnelles. Le bluetooth supporte le transfert de données (fax et internet) selon les normes de communication des téléphones.

## Synchronisation gestionnaire multimédia

La synchronisation rend transparente la copie de fichiers multimédia entre un ordinateur et un baladeur numérique. Le logiciel permettant la synchronisation le fait en créant des listes de liens vers des fichiers multimédia, qui sont copiés sur le baladeur. Les baladeurs peuvent ainsi servir de supports de stockage de données, en plus de leur utilisation principale de lecteur multimédia. Voir Lecteur multimédia

## Synchronisation gestionnaire de données personnelles
### Logiciels libres

| Nom | Protocole | Langage | Plate-forme | Type de licence | Dernière version |
| Conduit (en) | Multiples | Python | Linux, Unix | GPL | 0.3.17 [21 janvier 2010] |
| DirSync Pro | système de fichiers | Java | Windows, Linux, Mac OS X | GPL | 1.54b1 [28 décembre 2018] |
| FreeFileSync | système de fichiers, FTP, SFTP, Google Drive | C++ | Windows, Linux, Mac | GPL | 11.3 [11 juin 2021] |
| FullSync | système de fichiers ou FTP | Java | Windows, Linux | GPL2 | 0.10.4 [5 avril 2016] |
| luckyBackup | rsync | C++ | Unix, Linux, Mac OS X | GPL v3 | 0.5.0 [18 novembre 2018] |
| rsync | rsync | C | Unix, Linux, Mac OS X, Windows, Cygwin | GPL | 3.2.0 [19 juin 2020] |
| Syncthing | Système de fichiers | Go | Windows, Linux, OS X, Android, other Unix | MPL 2.0 | 1.11.1 [3 novembre 2020] |
| Synkron | système de fichiers | C++ | Windows, Linux, OS X, other Unix | GPL v2 | 1.6.2 [25 janvier 2011] |
| Unison | similaire à rsync ; utilise SSH comme protocole de transport | OCaml | Windows, Linux, OS X, other Unix | GPL | 2.51.2 [28 janvier 2018] |
| WinSCP | (Secure) FTP | C++ | Windows | GPL | 5.17.8 [15 octobre 2020] |