Tester connection via livebox avant envoie tache cron

bonjour a vous tous
bon, pour commencer, je suis total nul en langage bash, tout ce que j’ai fait a été par tâtonnements multiple, toujours sur des serveurs qui ne sont pas en production bien sur

ce qui m’ammene est la chose suivante: Je possède deux serveurs chez ovh, un principal en production, un secondaire ou toutes les nuits je copies les données importante du premier vers le second (le tout avec une tache cron et sous linux)
mais, etant par expérience méfiant, je fais aussi une copie journalière sur un ordinateur chez moi, lui aussi en linux, qui se reveille 10 mn avant la reception des données et se rendort (le fainéant) ensuite

etant derriere une livebox, il arrive parfois que au moment de l’envoie l’IP ne soit pas accesible, aussi je cherche un solution pour envoyer tout d’abord une requete en ping, si elle est ok alors j’envoie la copie, sinon, je patiente x minutes avant de retester ma connexion

j’ai ecrit (en piquant a droite et a gauche) le petit fichier bash suivant, qui fonctionne tres bien pour l’envoie des données, pas du tout pour le test…enfin, j’ai pas l’impression, j’ai l’impression que ca tourne en permanence

une bonne ame pourrait elle me donner une piste pour resoudre cela


EXCLUDE_FILE="/home/backupsite/exclude_file.txt"

TEST=ping xxxxxxx.dyndns.org > /dev/null

if [ “$TEST” = “” ]
then
zenity --error
wait 5
exit 0
else
zenity --info
fi

rsync -avz --delete -e “ssh -i /root/.ssh/id_dsa” /etc/ root@xxxxxx.dyndns.org:/media/patrick/sauv/rsync/etc/
rsync -avz --delete --exclude-from=$EXCLUDE_FILE -e “ssh -i /root/.ssh/id_dsa” /home/ root@xxxxxx.dyndns.org:/media/patrick/sauv/rsync/home/

ssh root@xxxxxx.dyndns.org halt

Bonjour,

Je pense qu’en plus d’un mois t’as trouvé une solution, et surement tu liras pas celle ci (c’est juste que ce script me torturait l’esprit ^^). Ca sera pour les suivants :]

J’ai juste remplacé zenity par xmessage.

#!/bin/sh

EXCLUDE_FILE="/home/backupsite/exclude_file.txt"
PINGHOST="xxxxxx.dyndns.org"


while ! ping -c 1 "$PINGHOST" > /dev/null 2>&1; do 
    xmessage -timeout 10 "Ne peut pas se connecter au serveur."
    sleep 300 #secondes
done

xmessage "Mise a jour en cours"
rsync -avz --delete -e "ssh -i /root/.ssh/id_dsa" /etc/ "root@$PINGHOST:/media/patrick/sauv/rsync/etc/"
rsync -avz --delete --exclude-from=$EXCLUDE_FILE -e "ssh -i /root/.ssh/id_dsa" /home/ "root@$PINGHOST:/media/patrick/sauv/rsync/home/"


ssh "root@$PINGHOST" halt