Настройки Screenrc для получения статуса удаленного сервера

Настройки Screenrc для получения статуса удаленного сервера

Я часто использую ssh в screen для подключения к набору машин. Было бы идеально, если бы строка заголовка отображала информацию о сервере, к которому я подключен по ssh (например, machinename, uptime и информацию из vmstat).

Я заметил, что backtickкоманда screen, похоже, выполняется только там, где запущен screen, она не выполняется на удаленной машине. Есть ли простой способ заставить backtick запустить команду на любой машине, которая в данный момент подключена по ssh?

решение1

Screen распознает несколько дополнительных последовательностей управления, которые терминал внутри окна может отправить для воздействия на Screen. Особый интерес для вас, вероятно, будут представлять последовательности \ek и \e\. Все, что находится между этими двумя, Screen будет использовать в качестве заголовка окна. Затем вы можете поместить заголовок окна в строку заголовка.

http://www.gnu.org/software/screen/manual/screen.html#index-control-sequences-107

Попробуйте это:

PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD/$HOME/~}\007\ek${USER}@${HOSTNAME}: ${PWD/$HOME/~}\e\\"'

Я использую это как приглашение на удаленных системах. Оно автоматически устанавливает заголовок окна на user@name: path. Последовательность управления для Screen находится в конце этой команды.

Связанный контент