Bonjour,

je suis un utilisateur intermittent des scripts batch (sous Debian)... j'arrive occasionnellement à faire des trucs basiques, mais je pêche le plus souvent sur des choses un peu plus pointues (de mon point de vue de débutant).
En l'occurence, je dois maintenir ouvert un tunnel ssh en background (je ne suis pas non plus un expert ssh, et encore moins en tunnels...)

J'utilise pour ce faire un batch (ci-dessous) programmé via crontab. L'authentification est assurée par une paire de clefs.

J'utilise par ailleurs autossh car il me semblait que c'était le meilleur moyen d'assurer que le tunnel est maintenu sans avoir à le tester régulièrement moi même (puisque j'avais cru comprendre que ce dernier testait le tunnel via une tâche mère et le relançait au besoin).

La planification est ok (le batch est relancé toutes les 5 minutes entre 8h et 20h.).
Le batch fonctionne aussi ... mais pas toujours : régulièrement, mon tunnel semble ne plus fonctionner et autossh n'a visiblement pas fait son travail car les deux tâches liées à autossh sont toujours lancées. Evidemment, mon batch calcule que tout est ok et ne fait rien...

Je me demande donc si l'un(e) d'entre vous aurait une suggestion pour améliorer un peu ce batch afin notamment de m'assurer de l'état du tunnel et le relancer (kill + start) au besoin...

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#!/bin/bash
LOGFILE="/root/Tunnel/logBatchRedemarrage.log"
NOW="$(date +%d/%m/%Y' - '%H:%M)" # date et heure du log
 
if ! ps ax | grep ssh | grep tunnelToto &> /dev/null
then
        echo "[$NOW] ssh tunnel not running : restarting it" >> $LOGFILE
        autossh -f -N -L pppp:tunnelToto:nnnnn nom-prenom@193.xxx.yyy.zzz -p qqqq
        if ! ps ax | grep ssh | grep toto &> /dev/null
        then
                echo "[$NOW] failed starting tunnel" >> $LOGFILE
        else
                echo "[$NOW] restart successfull" >> $LOGFILE
        fi
fi
Merci déjà de m'avoir lu jusque là, et le cas échéant merci d'avance de vos suggestions.