У меня есть несколько сеансов экрана, запущенных на одном из моих серверов (скажем, session_read
, session_prod
..)
В настоящее время я указываю сеанс экрана после того, как я подключился к моему серверу.
Есть ли способ указать сеанс экрана, пока я пытаюсь подключиться к ssh?
Что-то вроде
ssh user@servername screen_session_name
Я использую обычай hardstatus
линия в ~/.screenrc
:
hardstatus alwayslastline "%{wk}%-w%{Gk}[%n %t]%{wk}%+w%=%{Ck}%d %M %Y %c:%s"
в сочетании с небольшим скриптом оболочки:
#!/usr/bin/env bash
show_help() {
printf "Usage: con hostname\n"
exit 0
}
[[ "$#" -eq 1 ]] || show_help
uppercase="${1^^}"
lowercase="${1,,}"
screen -t "${uppercase}" -T screen-256color ssh "${lowercase}"
exit 0
Поместите его где-нибудь в свой PATH, и вам нужно только вызвать его:
$ my_script hostname
и будет выделен новый сеанс экрана с заголовком, установленным для имени хоста, к которому вы подключаетесь.
Вы можете предоставить дополнительные настройки через ~/.ssh/config
настройки.
Вам необходимо выделить TTY, иначе SSH пожалуется:
$ ssh host screen
Must be connected to a terminal.
Предполагая, что сеанс уже отключен:
$ ssh -t user@host screen -r session
в противном случае подходящая комбинация -d, -r, -D, -R, -x на страница руководства.