Rsync est un outil formidable qui permet de synchroniser des données sur une machine, mais aussi à travers un réseau.
J'utilise principalement ce programme pour faire une sauvegarde complète de mon site intranet hébergé sur un autre serveur.
Nous avons d'un côté, un serveur web nommé servLin1 (IP: 172.19.1.5). De l'autre une machine distante nommée jld07 (IP: 172.19.6.7).
Je désire faire une copie de sauvegarde de tout le contenu /var/www/html/site vers /home/servlin1_sav
À partir de la machine cliente (jld07), je lance le script suivant backup_servlin1 :
#!/bin/sh
# Données :
USER=root
SOURCE=172.19.1.5
OPTION="--links --update --archive --hard-links --force --partial --compress --verbose -e ssh --delete"
# Commande
rsync $OPTION $USER@$SOURCE:/var/www/html/site /home/servlin1_sav
Mémo : pour rendre un fichier exécutable, taper
chmod +x servlin1_sav
puis ./servlin1_sav pour le lancer.
Si vous avez testé le script du haut, vous remarquerez qu'il vous demande le mot de passe de la machine distante servLin1. Si l'on veut réaliser cette opération de synchronisation automatiquement, il convient d'identifier la machine cliente sur le serveur. Ensuite ; il ne vous demandera plus le mot de passe.
Voici la procédure :
Voilà, vous etes normalement identifié. Pour le vérifier, retournez sur votre machine en tapant
exit
puis faite une nouvelle tentative de connexion au serveur :
ssh root@172.19.1.5
Normalement, le système ne doit plus vous demander de mot de passe.
Maintenant, que l'on arrive à synchroniser les données du serveur, il ne reste plus qu'à automatiser l'ensemble. Disons par exemple, tout les midis à l'heure où l'on mange (13h30) ?
Je vais avoir besoin d'utiliser les cron. En l'occurrence, la commande crontab me permet de lancer des tâches à intervalles réguliers.
Existe-t-il des tables déjà définies ?
crontab -l
Ajout d'une nouvelle table
crontab -e
# m h dom mon dow command
# Sauvegarde site intranet sur servlin1 (edit: 18/07/06)
30 13 * * * /home/servlin1_sav/backup_servlin1 /dev/null 2>&1
Si vous avez installé mailx ou un autre utilitaire de lecture de messages envoyés par la machine, vous aurez même le compte rendu des fichiers synchronisés.