Автоматическое переподключение SSH-подключений к определенному сеансу "экран"

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

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

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

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

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

Спасибо за любые советы по этой

13
задан GJ.
13.02.2023 17:43 Количество просмотров материала 3691
Распечатать страницу

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,более современную реализацию screen. Я на самом деле использую приведенный выше сценарий с экраном. Вероятно, вы также захотите использовать именованный сеанс экрана, а не просто использовать pid, как в вашем примере.

8
отвечен Jason Axelson 2023-02-15 01:31

не нужно рубить Баш петли. Вам нужно заглянуть в autossh. Сам я им мало пользовался, но понимаю, что вы просто заменяете ssh с autossh в вашей команде.

Edit: на самом деле, autossh поставляется со скриптом под названием rscreen, который, как представляется, предназначен именно для этой цели.

5
отвечен Ryan Thompson 2023-02-15 03:48

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх