Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 28/08/2018, à 17:20

visual1956

[RESOLU]état d'un port d'un PC placé derrière une box

bonjour
je viens de réaliser un NAS et un petit programme shell basé sur rsync dans ce programme je retourne l’état de la variable $? liée à  rsync
par contre je viens de m'apercevoir que le programme me retourne ok même si le micro ordinateur qui gère le NAS ( Raspberry) n'est pas connecté
j'utilise une freebox qui adresse mon serveur NAS lorsque de l'extérieur je tape mon adresse ip avec le port 22
existe il un moyen de tester que mon micro placé derrière la box est bien actif

par avance merci

Dernière modification par visual1956 (Le 29/08/2018, à 18:15)

Hors ligne

#2 Le 28/08/2018, à 18:31

bruno

Re : [RESOLU]état d'un port d'un PC placé derrière une box

Bonjour,

Montre-nous ton code. Je rappelle que $? renvoie l'état de sortie de la dernière commande exécutée (0 si succès)

Hors ligne

#3 Le 28/08/2018, à 21:29

visual1956

Re : [RESOLU]état d'un port d'un PC placé derrière une box

bonsoir
voici le code que j'utilise qui est issu d'un site web

    #!/bin/bash
mois=$(date +%B)
jour=$(date +%d-%m-%Y)
heure=(date +%T)
log="/home/michel/Bureau/logs_sauvegardes"
userssh="michel"
ipssh="ww.xx.xx.xx."
origine="/home/michel/Images/test/"
destination="/home/backup/michel/mes_backups"
supprime="/home/backup/michel/fichiers_supprimes"
compteur=5
retention=$(date +%B --date='1 month ago')


nom()
{
echo "-------------------------------------------------------------" > $log/sauvegarde_$jour.log
echo -e "Sauvegarde de $local du $(date +%d-%B-%Y)" >> $log/sauvegarde_$jour.log
echo "-------------------------------------------------------------" >> $log/sauvegarde_$jour.log
}


# Si le répertoire contenant les logs n'existe pas, celui-ci sera crée.
if [ ! -d $log ];then
mkdir $log
fi

# On teste la présence du dossier source et que le serveur répond bien au ping
recus=$(ping -c $compteur $ipssh | grep 'received' | awk -F',' '{ print $2 }' | awk '{print $1 }') >> $log/sauvegarde_$jour.log  2>&1
if [[ ! -d $origine ]] && [[ $recus -eq 0 ]];then
nom
echo -e "$jour-$heure :\n" >> $log/sauvegarde_$jour.log
echo -e "$origine n'existe plus ou est inaccessible.\n\nServeur inaccessible ($ipssh : $compteur paquets transmis, $recus paquets reçus).\n\nAucune
sauvegarde effectuée." >> $log/sauvegarde_$jour.log


elif [ $recus -eq 0 ]; then

echo recus >> $log/sauvegarde_$jour.log


 
# On teste seulement la présence du dossier source
elif [ ! -d $origine ];then

nom
echo -e "$jour-$heure : $origine n'existe plus ou est inaccessible.\n\nAucune sauvegarde effectuée." >> $log/sauvegarde_$jour.log
exit

echo "-------------------------------------------------------------" > $log/sauvegarde_$jour.log
# nom de la sauvegarde dans le journal
echo "Sauvegarde de $local du $(date +%d-%B-%Y)" >> $log/sauvegarde_$jour.log
echo "-------------------------------------------------------------" >> $log/sauvegarde_$jour.log
# heure de début du transfert dans le journal
echo "Heure de demarrage de la sauvegarde : $(date +%H:%M:%S)" >> $log/sauvegarde_$jour.log
echo "-------------------------------------------------------------" >> $log/sauvegarde_$jour.log

# On teste seulement le ping du serveur
elif [ $recus -eq 0 ];then
nom
echo -e "$jour-$heure : Serveur inaccessible ($ipssh : $compteur paquets transmis, $recus paquets reçus).\n\nAucune sauvegarde effectuée." >> $log/sauvegarde_$jour.log
exit
fi
echo "-------------------------------------------------------------" > $log/sauvegarde_$jour.log
echo "Sauvegarde de $local du $(date +%d-%B-%Y)" >> $log/sauvegarde_$jour.log
echo "-------------------------------------------------------------" >> $log/sauvegarde_$jour.log
# Heure de début du transfert dans le journal
echo "Heure de demarrage de la sauvegarde : $(date +%T)" >> $log/sauvegarde_$jour.log
echo "-------------------------------------------------------------" >> $log/sauvegarde_$jour.log

# transfert des fichiers

rsync -arv --stats --delete --backup --backup-dir=$supprime  $origine  $userssh@$ipssh:$destination  >> $log/sauvegarde_$jour.log
echo "opération effectuée" >>  $log/sauvegarde_$jour.log
status=$?

echo "" >> $log/sauvegarde_$jour.log
#code d'erreurs rsync
 
echo $?
case $status in

 0) echo Synchronisation réussite >> $log/sauvegarde_$jour.log;;
 3) echo "Erreurs lors de la sélection des fichiers et des répertoires d\' entrée/sortie" >> $log/sauvegarde_$jour.log;;
 4) echo Action non supportée : une tentative de manipulation de fichiers 64-bits sur une plate-forme qui ne les supporte pas ou une;;
 5) echo Erreur lors du démarrage du protocole client-serveur >> $log/sauvegarde_$jour.log;;
 6) echo Démon incapable d'écrire dans le fichier de log >> $log/sauvegarde_$jour.log;;
 10) echo Erreur dans la socket E/S >> $log/sauvegarde_$jour.log;;
 11) echo Erreur d'E/S fichier >> $log/sauvegarde_$jour.log;;
 12) echo Erreur dans le flux de donnée du protocole rsync >> $log/sauvegarde_$jour.log;;
 13) echo Erreur avec les diagnostics du programme >> $log/sauvegarde_$jour.log;;
 14) echo Erreur dans le code IPC>> $log/sauvegarde_$jour.log;;
 20) echo SIGUSR1 ou SIGINT reçu >> $log/sauvegarde_$jour.log;;
 21) echo "Une erreur retournée par waitpid()" >> $log/sauvegarde_$jour.log;;
 22) echo Erreur lors de l'allocation des tampons de mémoire principaux >> $log/sauvegarde_$jour.log;;
 23) echo Transfert partiel du à une erreur >> $log/sauvegarde_$jour.log;;#
 24) echo Transfert partiel du à la disparition d'un fichier source >> $log#/sauvegarde_$jour.log;;
 25) echo La limite --max-delete a été atteinte >> $log/sauvegarde_$jour.log;;
 30) echo Dépassement du délai d\'attente maximale lors de l\'envoi ou de réception de données >> $log/sauvegarde_$jour.log;;
 35) echo Temps d’attente dépassé en attendant une connection >> $log/sauvegarde_$jour.log;;
 255) echo Erreur inexpliquée >> $log/sauvegarde_$jour.log;;

 esac
echo "-----------------------------------------------------------------------" >>$log/sauvegarde_$jour.log
# Heure de fin dans le journal
echo "Heure de fin de la sauvegarde : $(date +%T)" >> $log/sauvegarde_$jour.log
echo "-------------------------------------------------------------" >> $log/sauvegarde_$jour.log
# On supprime les sauvegardes suivant la rétention.
ssh $userssh@$ipssh rm -rf "sauvegardes_$retention"
exit

normalement l'absence de serveur derrière la freebox devrait générer un message d'erreur  d'absence de serveur ce qui nest pas le cas

-------------------------------------------------------------
Sauvegarde de  du 27-août-2018
-------------------------------------------------------------
Heure de demarrage de la sauvegarde : 19:30:05
-------------------------------------------------------------
opération effectuée

Synchronisation réussite
-----------------------------------------------------------------------
Heure de fin de la sauvegarde : 19:30:09
-------------------------------------------------------------

dans l'attente de votre aide

Hors ligne

#4 Le 29/08/2018, à 08:58

bruno

Re : [RESOLU]état d'un port d'un PC placé derrière une box

Si :

ipssh="ww.xx.xx.xx."

correspond à ton IP publique ton test de ping ne sert à rien puisque la requête se fait sur la freebox et non le serveur NAS. En outre tes conditions sont trop compliqués.

bruno a écrit :

Je rappelle que $? renvoie l'état de sortie de la dernière commande exécutée (0 si succès)

rsync -arv --stats --delete --backup --backup-dir=$supprime  $origine  $userssh@$ipssh:$destination  >> $log/sauvegarde_$jour.log
echo "opération effectuée" >>  $log/sauvegarde_$jour.log
status=$?

Est-ce que tu vois le problème? wink

Hors ligne