зайти в screen на удалённой системе


masterx - Posted on 20 Май 2008

Требуется: Приатачиться к screen, запущенному на удалённой системе с минимальным количеством телодвижений.

Решение:
Не обязательно, но все таки:

1. делаем беспарольную аутентификацию как рассказно здесь

затем

2.

$ ssh -t login@host 'source .bashrc; screen -x'

Готово!

3. И на последок, что бы все вышеперечисленное таки совершалось с наименьшим количеством телодвижений, создаем скрипт:

$ cat >remotescreen
!#/bin/sh 
ssh -t login@host 'source .bashrc; screen -x'
 
$chmod 755 remotescreen

3.a ... или делаем алиас в любимом .*shrc

alias remotescreen="ssh -t login@host 'source .bashrc; screen -x'"

P.S. в пункте 2 заменить .bashrc на соответствующий .zshrc, итд...

0
Ваша оценка: Ничего

Подскажите, а можно ли, после старта screen запустить в одном из его окон mc - автоматом?

yes, place in your .screenrc file in home directory the line look like this:

screen -t blabla_mc 0 mc

And after screen start you have on wondow 0 the mc programm.

Действительно спасибо, я тоже не знал как.

А вот можно как-то выполнить последоватлеьность комманд без создания дополнительных файлов/алиасов?

Мне например это надо прежде всего для смены директории перед запуском комманды, например на:
screen -t blabla_mc 0 cd /home/pasha/temp ; mc
или
screen -t blabla_mc 0 'cd /home/pasha/temp ; mc'
скрин уже ругается что, дескать, такой комманды 'cd /home/pasha/temp ; mc' нету и не возможно выполнить ее execve... Что в общем-то вполне резонно конечно, но не слишком удобно мне...

Сделал так, комманду задаю вместо просто последовательности как:
sh -c 'cd ~/rpmbuildroot ; mc'

Если есть другие предложения - буду рад услышать.

Класс! Работает!

Сделал по аналогии
screen -t blabla_mc 0 mc
screen -t blabla_mc 1 tail -f /var/log/syslog
screen ....

А вот как бы из .screenrc - перейти на вкладку 0
(конечно можно поставить запуск mc последним, - но это не самое крсаивое решение)

клади после этого в .screenrc строчку:
select 0

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

Спасибо! Принцип понял.

дальше больше ;)
Сразу запустить screen поделенным например на три части - чтоб в них что либо уже крутилось, ping tail .....
Или допустим, сохранить рассположение окон (запущенные процессы в них) в файл и загрузить его снова.....

Че-то я, видно, не в теме, но где тут сокращение телодвижений??? Гораздо проще по очереди эти команды набрать...

$ ssh login@host
[host]$ screen -x

zabyl dopisat':
3. pishem skriptik remotescreen :
#!/bin/sh
ssh -t ......

$ chmod 755 remotescreen

teper' vsjako bystree (-:

Один раз стрелку вверх нажать вместо двух.

Не совсем понятно, для чего делать source .bashrc, раз мы все равно попадаем сразу в шелл внутри скрина...

bez "source .bashrc" ne podhvatyvajutsya peremennye okruzhenija tipa PATH, EDITOR, ... propisannye v .bashrc
bez "source .bashrc" vse rabotaet, no esli v screen nuzhni peremennye okruzhenija to "source .bashrc" vynuzhdennaja mera. Ili zhe mozhno vse neobhodimoe propisat' v .screenrc, togde source .bashrc ne nuzhen.

в screen может быть указан другой шел.

обычно этого не нужно, но как решение почему бы и нет.
еще и на alias повесить и совсем хорошо будет Ж:-))

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

$ ssh -t core.org.ua ssh -t komar screen -S work-ds

--
Signature invent in progress 24% ##........

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

Google Friend Connect (leave a quick comment)
loading...
Содержание этого поля является приватным и не предназначено к показу.