Pages : 1
#1 Le 14/01/2009, à 23:56
- ReZPL
Rsync
Salut!
J'aurais besoin d'aide pour la conception d'un script bash.
J'ai trouvé ce script sur google:
ip=monserveur
user=monuser
dir=/
r=1
c=0
a=$(( $c % 2 ))
until [ $r = 0 ]
do
a=$(( $c % 2 ))
if [ $a -eq 0 ]
then
nip=$ip
fi
if [ $a -eq 1 ]
then
nip=$domain
fi
if test $c -gt 120
then
exit 1
fi
ping -c 2 $nip
r=$?
c=`expr $c + 1`
sleep 5
done
sshfs $user@$nip:$dir /home/reso/remoteserv
sleep 5
rsync -r -R -t -v --inplace --progress -c --delete-after /home/reso/doc/ /home/reso/remoteserv/
Cette partie fonctionne bien, maintenant ce que je veux est de l'automatisation et voici ce qu'il doit faire:
1- Exécuter le script d'écrit ci-haut
2- Lorsque rsync s'exécute par le script d'écrit ci-haut, le serveur doit être maintenu en ligne...alors il faudrait qu'il ping le serveur à environ chaque 10 mins, sinon killall rsync
3- Si rsync est killer, relancer le script ci-haut
Il me manque seulement ces étapes, puisque lorsque le serveur est coupé, rsync continue d'envoyer les fichiers dans le dossier /home/reso/remoteserv de l'ordinateur et non plus vers ce même dossier préalablement monté en sshfs de l'ordinateur distant. J'utilise cron pour l'exécution du script automatique.
Voilà, si quelqu'un peut m'aider ça serait apprécié
Merci!!
#2 Le 15/01/2009, à 05:09
- idcpif
Re : Rsync
2 observations :
* La première c'est que ce script ne lance pas rsync.
* La seconde est une considération de chronologie,monter le sshfs si le serveur est en ligne (test avec ping par exemple) puis lancer un rsync uniquement si le filesystem est monté.
A la fin du rsync démonter le filesystem ssh.
Effectuer un polling avec un ping dans la cron (on redirige le resultat du ping dans un fichier).
Rappel rsync
ssh @server
rsync -av -e ssh --stats --delete --backup --backup-dir=/media/serverbackupfolder/ /media/localtobackup/ @server:/media/localtobackup/
Dernière modification par idcpif (Le 15/01/2009, à 05:23)
http://www.pier-infor.eu
Hors ligne
#3 Le 16/01/2009, à 06:19
- ReZPL
Re : Rsync
Tu verras la commande rsync en défillant d'une petite coche dans le script. Donc à ce que je vois je ne fais qu'ajouter ce que tu me dis et ça devrait fonctionner.
Merci
Pages : 1