Synchroniser des fichiers entre 2 serveurs linux avec RSYNC et SSH
Par Jeremie Engel le dimanche, novembre 4 2007, 09:47 - Notes techniques - Lien permanent
L'idéal et de générer des clés SSH pour ne pas avoir à raisir les mots de passe et ainsi pourquoi mettre en cron la synchro si besoin. J'avais trouvé une partie du script sur un site dont je ne me souviens pas du nom, donc merci à eux quand même :)
#!/bin/sh
# sync
DIRECTORY=/var/www/DOSSIER_A_SYNCHRONISER/
SRC=${DIRECTORY}
DEST=/var/www/DOSSIER_A_SYNCHRONISER/
#La source est locale
SRC_HOST=localhost
# La destination : le serveur sur lequel on publie les données
DEST_HOST=www.serveur.com
# l'utilisateur unix qui se connecte en ssh
USER=UTILISATEUR
# Fichiers contenant les listes d'exclusions et d'inclusions
#EXCLUDES=${DIRECTORY}/synchro/excludes
#INCLUDES=${DIRECTORY}/synchro/includes
# Option passee a rsync
# Optionnellement on peut supprimer les fichiers exclus
#OPTS="-anvzSH --delete --delete-excluded"
OPTS="-avzSH --delete"
### Start programme
[ -f $EXCLUDES ] && EXCL_OPT="--exclude-from=$EXCLUDES"
[ -f $INCLUDES ] && INCL_OPT="--include-from=$INCLUDES"
# Shoot les messages
# exec > /dev/null 2>&1
# Kill dernier rsync si encore en cour d'execution
progname=`basename $0`
pidfile=/var/run/$progname.pid
oldpid=`cat $pidfile 2>/dev/null`
# Si valeur de $oldpid non null, tue le process
if [ $oldpid ]; then
test -n $oldpid && kill $oldpid && kill -9 $oldfile
fi
# Lance le sync
rsync $OPTS --exclude-from=$EXCLUDES --include-from=$INCLUDES -e ssh $SRC $USER@$DEST_HOST:$DEST
# Si on veut attaquer le serveur SSH sur un autre port :
#rsync $OPTS --exclude-from=$EXCLUDES --include-from=$INCLUDES -e 'ssh -p 26' $SRC $USER@$DEST_HOST:$DEST
# Mets a jour le pid dans le fichier
echo $! >$pidfile

Commentaires
Bonjour,
j'ai un projet qui est egal au votre le seul problème c kil mai imposé par ma boite et que je connai tres peut linux.
Dans quoi dois-je créé le script?
Et comment l'exécuter?
Tu peux le créer où tu veux dans le système de fichier. Si tu disposes d'un dossier dédiés aux fonctions administratives de ton application, tu peux le placer dedans.
Pour l'executer, tu fais simplement un chmod +x sur ton fichier pour qu'il devienne executable.