Настройка серверов и сайтов на Linux/Unix под "ключ". Услуги системного администратора. Всегда онлайн в телеграм.

Регистрация Войти
Вход на сайт
Качественные бесплатные шаблоны dle скачать с сайта
» » Автоматический запуск screen при входе по SSH

Автоматический запуск screen при входе по SSH

10-02-2012
Автор: synergix
Просмотров: 13 070
Комментариев: 0
Версия для печати


Думаю, все рано или поздно осознают удобство использования утилиты screen. Особенно когда вы соединяетесь с сервером по медленному и ненадежному каналу. Те, кто еще не слышал о ней - рекомендую почитать вот эту статью.
Ну а сегодня мы немного усовершенствуем подключение по ssh и настроем автоматический запуск screen.
Для этого в конец .bashrc дописываем
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, если версия FreeBSD ниже 7-ой.
Теги: screen ssh
Рейтинг статьи:
  • 0
Нашли ошибку?   
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь. Мы рекомендуем Вам зарегистрироваться либо зайти на сайт под своим именем.

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.