Soy un usuario principiante de Linux, y también bastante novato en ssh y túneles.Cómo configurar un inicio (re) automático de un túnel ssh en segundo plano
De todos modos, mi objetivo es mantener abierto un túnel ssh en el fondo.
Para hacer eso, escribí el siguiente lote que luego agregué en crontab (el lote se procesa automáticamente cada 5 minutos durante los días de trabajo y de 8am a 9pm). He leído en otro hilo en stackoverflow que uno debe usar autossh que asegurará que el ssh siempre estará bien a través de una comprobación recurrente. Así lo hice yo ....
#!/bin/bash
LOGFILE="/root/Tunnel/logBatchRestart.log"
NOW="$(date +%d/%m/%Y' - '%H:%M)" # date & time of 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 [email protected] -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
Mi problema es que a veces el túnel deja de funcionar, aunque cada cosa que se ve bien (ps ax | grep ssh> muestra el resultado de las dos tareas que se esperan: autossh tarea principal y el ssh túnel en sí). De hecho, sé sobre el problema porque el túnel es utilizado por un software de terceros que desencadena un error tan pronto como el túnel deja de responder.
SO Me pregunto cómo debería mejorar mi lote en orden. Será capaz de verificar el túnel y reiniciarlo si está muerto. Vi algunas ideas en there, pero se concluyó con la pista "autossh" ... que ya uso. Por lo tanto, me he quedado sin ideas ... ¡Si alguno de ustedes tiene, con mucho gusto los echaré un vistazo!
Gracias por interesarse en mi pregunta, y para sus (tal vez) sugerencias!
creo que deberías echar un vistazo a serverfault.com. Buscar 'ssh' o' autossh' Ejemplo: http://serverfault.com/questions/159766/bash-script-with-permanent-ssh-connection – powerMicha