# Synchronisation des données

Dans le cas ou vous souhaitez avoir les mêmes données sur deux serveurs différents.

# Synchroniser des données

> Prenons l'exemple de la synchronisation des sauvegarde de Base de données entre deux serveurs.

Pour ce faire nous allons utiliser l’outil `rsync`. Avec cet outil la synchronisation est unidirectionnelle, c'est-à-dire qu'elle copie les fichiers de la source en direction de la destination. rsync est donc utilisé pour réaliser des sauvegardes incrémentielles ou différentielles ou pour diffuser le contenu d'un répertoire de référence.

##### Création d'un script

```shell
sudo nano sync-database
```

##### Contenu du script

```shell
#!/bin/bash

# # # # # # # # # # # # # # #
# SYNC DATABASE by gpatruno #
# # # # # # # # # # # # # # #

# définition des variables
BACKUPDIR=/etc/backup; 			# Répertoire des sauvegardes
URL_DEST=domaine.fr				# Hôte de destination (IP ou Nom de domaine)
USER=username					# Nom de l'utilisateur de destination
DB_PASSWORD=dbpassword			# Mot de passe de l'utilisateur de destination
DESTDIR=/home/$USER/backup 		# Répertoire de destination des saves

/usr/bin/rsync -r -avh $BACKUPDIR $USER@$URL_DEST:$DESTDIR --delete
```

<p class="callout info">L'argument `--delete` permet de prendre en compte la suppression de fichier. Si un fichier a était supprimé dans le répertoire source alors il sera aussi supprimé dans le répertoire de destination. </p>

##### Donner le droit d'exécution

```shell
sudo chmod +x sync-database
```

##### Exécution du script

```shell
./sync-database
```