Как настроить автоматический запуск screen при входе по ssh

Достало постоянно вводить screen -dR при входе на удалённую машину. Погуглив нашёл простое решение. В конце ~/.bashrc дописать:

if [ -z "$STY" ]; then
    exec screen -dR
fi

4.666665
Средняя: 4.7 (3 голоса)
Ваша оценка: Нет

Comments :

Аватар пользователя Анонимный

спасибо, полезный финт

спасибо, полезный финт

Аватар пользователя Анонимный

а можно просто alias

а можно просто alias сделать:

alias ssh-screen='ssh -t userl@host "screen -dr"'

Аватар пользователя Анонимный

У меня чуть более продвинутый

У меня чуть более продвинутый вариант :)

В конец .basrc надо добавить

if [ "$SSH_TTY" ]; then
  if [ ! "$STY" ] ; then
    CHOICE=`SCREEN/choose`
    if [ -z "$CHOICE" ]
    then
      exec screen
    else
      exec screen -dr $CHOICE
    fi
  fi
fi

и создать файл ~/SCREEN/choose:

#!/bin/bash
 
USERNAME=`whoami`
 
i=0
declare -ax SCREENS
 
SOCKETS=`find /var/run/screen/S-$USERNAME -type p`
 
if [ -z "$SOCKETS" ]
then
  exit 0
fi
 
for S in $SOCKETS
do
  ((i=$i+1))
  S=`basename $S`
  SCREENS[$i]=`screen -ls | grep $S | perl -e '$s=<>; $s =~ s/^\\t(.*)\s/$1/; $s =~ s/\s/_/g; print $s'`
done
 
 
MENU=""
for ((j=1; j<=$i; j=$j+1))
do
  MENU="$MENU $j ${SCREENS[$j]}"
done
 
WHICH=`dialog --stdout --menu Select: 0 0 0 $MENU`
echo ${SCREENS[$WHICH]} | sed -e 's/_(.*)$//'

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

Единственная (вроде бы) зависимость -- нужно поставить dialog.

Аватар пользователя Анонимный

Вопрос

Можно, спрсить. А зачем ты каждый раз делаешь скрин?

Я его только недавно освоил, для раздачи торрентов на сервере. Приходится под каждую раздачу делать по 1ой сессии screen. В итоге их получается очень много и фиг поймёшь в какой что раздаётся.

Аватар пользователя diamon

во-первых часто рвётся

во-первых часто рвётся коннект.
во-вторых удобно когда запускаешь что-то долгоиграющее.
в-третьих просто удобно зайти и вернуться к работе. а не начинать всё заново.
в-четвёртых не обязательно открывать кучу коннектов для нескольких окон терминалов.
а чтобы разобраться, где какое окно скрина - им можно давать имена.

Отправить комментарий

Содержимое этого поля является приватным и не будет отображаться публично. If you have a Gravatar account associated with the e-mail address you provide, it will be used to display your avatar.
 
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Доступные HTML теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <table> <tr> <td> <img>
  • Строки и параграфы переносятся автоматически.
  • Вы можете использовать подсветку исходного кода следующими тегами: <code>, <blockcode>. Поддерживаемые стили тегов: <foo>, [foo].
  • Поисковые системы будут индексировать и переходить по ссылкам на разрешённые домены.

Подробнее о форматировании