Как настроить автоматический (повторный) запуск фонового ssh-туннеля

Я начинающий пользователь Linux, а также новичок в ssh и туннелях.

В любом случае, моя цель - поддерживать туннель ssh открыть в фоновом режиме.

Для этого я написал следующий пакет, который затем добавил в crontab (пакет автоматически обрабатывается каждые 5 минут в рабочие дни и с 8 утра до 9 вечера). Я читал в каком-то другом потоке stackoverflow, что следует использовать autossh, который будет гарантировать, что ssh всегда будет в порядке при повторной проверке. Я тоже ....

#!/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 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

Моя проблема в том, что иногда туннель перестает работать, хотя все выглядит нормально (ps ax | grep ssh> результат показывает две ожидаемые задачи: основная задача autossh и сам туннель ssh). Я действительно знаю о проблеме, потому что туннель используется сторонним программным обеспечением, которое вызывает ошибку, как только туннель больше не отвечает.

Итак, мне интересно, как мне улучшить свою партию, чтобы она могла проверить туннель и перезапустить его, если он окажется мертвым. Я видел некоторые идеи в там , но они были завершены подсказкой "autossh" ... которую я уже использую. Таким образом, у меня нет идей ... Если у кого-то из вас есть, я с радостью взгляну на них!

Спасибо за интерес к моему вопросу и за ваши (возможно) предложения!

6
задан Community 23 May 2017 в 11:46
поделиться