Автоповторное подключение соединений SSH с определенной 'экранной' сессией

У меня обычно есть несколько окон терминала, каждое из которых подключено через ssh к удаленному серверу. В каждом окне я работаю с помощью экранной программы гну, для обеспечения персистентности интерактивных процессов в случае разъединения.

В настоящее время, каждый раз, когда соединение SSH отбрасывает (такой как тогда, когда я поместил свой клиентский компьютер для сна в течение ночи), я должен вручную и утомительно перезапустить ssh сессию в каждом окне, и затем в каждом окне утомительно возобновляют определенную экранную сессию (например, "экранируют-r 3453" в одном окне, "экранируйте-r 3462" в другом и т.д.),

Существует ли изящный способ автоматизировать это? Конкретно:

  • повторно подключите ssh сессию, если она отбрасывает, как только Интернет-соединение обнаруживается

  • выполните определенный экранный экземпляр для окна терминала, как только ssh снова соединяется

Спасибо за любые подсказки относительно этого

10
задан 14.09.2010, 02:16

2 ответа

Можно выполнить это: ssh -t hostname screen -r 3453 снова соединяться. Если Вы хотите сделать это в цикле, я использую следующее в сценарии.

while true; do
    ssh -t -o BatchMode=yes eeepc-rsi "screen -r 3453"
    sleep 2
done

Это работает лучше всего, если у Вас есть установка ssh-ключей, таким образом, можно войти в систему, не вводя в пароле. Я также рекомендовал бы посмотреть на tmux, более современную реализацию экрана. Я на самом деле использую вышеупомянутый сценарий с экраном. Вы, вероятно, также хотите использовать именованную экранную сессию вместо того, чтобы просто использовать pid как Вы, делают в Вашем примере.

9
ответ дан 07.12.2019, 12:49

Никакая потребность взломать циклы удара. Необходимо изучить autossh. Я не использовал его очень сам, но мое понимание - то, что Вы просто заменяете ssh с autossh в Вашей команде.

Править: На самом деле autossh идет с названным сценарием rscreen который, кажется, разработан для точно этой цели.

5
ответ дан 07.12.2019, 12:49

Теги

Похожие вопросы