No meu serviço, eu preciso administrar vários servidores a partir de uma estação Windows utilizando o programa PuTTY. Geralmente, eu fico com umas 6 ou 10 (às vezes, bem mais que isso) janelas abertas.
Encontrei uma ferramenta que facilitou a minha vida quando tenho que trabalhar com várias conexões a servidores através do PuTTY. O nome é screen. Abaixo, vou descrever as funcionalidades desta ferramenta que achei mais úteis.
No CentOS 5.3, o screen não é instalado por padrão. Porém ele existe no repositório “base” da distribuição. Portanto, para instalá-lo:
# yum -y install screen
Pronto! O screen e todas as dependências necessárias serão instaladas na sua máquina.
Com o screen, é possível um usuário ver o que o outro está digitando e vice-versa (ambos os usuários podem digitar os comandos e ambos verão os resultados). Os dois usuários devem estar logados no mesmo servidor com o mesmo usuário (root, por exemplo).
Para iniciar a sessão screen:
# screen -s sessao
Para o outro usuário se conectar a essa sessão e poder interagir:
# screen -x sessao
Por exemplo, se o João criar uma sessão chamada “nome da sessao” usando o root a Maria pode interagir com esta sessão digitando:
# screen -x “nome da sessao”
Lembrando que Maria também deve estar logada como root. Não há limites quanto à quantidade de usuários que podem se conectar a uma sessão.
A palavra “sessao” nos comandos acima, pode ser trocada por qualquer outra palavra. Se o nome da sessão for conter espaços, utilize “nome de sessão com espaços” (entre aspas duplas).
Para finalizar a sessão, é só digitar Ctrl + D ou “exit”. Assim, apenas a sessão screen será finalizada, não a sessão SSH.
Em uma mesma janela do PuTTY você pode abrir várias conexões para vários servidores diferentes utilizando o screen. Funciona assim:
Obs.: Comandos como Ctrl – a p devem ser executados da seguinte forma: pressiona-se Ctrl + a simultaneamente e, após soltar as teclas Ctrl + a pressiona-se a tecla p.
Se ocorrer algum problema e você for desconectado da sua sessão screen sem antes finalizá-la, você pode se conectar no servidor novamente via SSH e também se conectar à sessão anterior do screen sem ter perdido nenhum dado. Faça o seguinte:
Verifique quais as sessões que estão sendo executadas:
# screen -ls
A saída desse comando será algo como:
There is a screen on:
8228.pts-4.curio (Detached)
1 Socket in /var/run/screen/S-root.
Para se conectar à sessão existente:
# screen -r 8228.pts-4.curio
Pronto, você não terá perdido nenhum dado das suas sessões que estavam sendo executadas via screen.
Espero que ajude vocês no dia-a-dia. Qualquer dúvida, deixe seu comentário!
8 Comentários
Robson
17|Jul|2009 1Faltou você colocar umas telas para ver a funcionalidade.
Pedro Pereira
21|Jul|2009 2Robson,
Não coloquei screenshots por ser uma interface de texto normal. Quero dizer, se você olhar uma tela do Putty sem usar o screen e outra usando o screen, você não irá ver a diferença.
[]‘s
Pedro
uberVU - social comments
11|Dec|2009 3Social comments and analytics for this post…
This post was mentioned on Twitter by pogao: Aprenda a utilizar o comando screen no Linux: http://bit.ly/ruLtB...
Felipe Gabriel
10|Feb|2010 4Muito Bom !
Otimo Tutorial Passo a Passo bem elaborado !
Valeu.
Como ver outros tty/pts
12|Feb|2011 5[...] outros tty/pts GA_googleFillSlot("300×250-forum-last"); pra começo pode ler este material. Como utilizar o comando screen no Linux | Pedro Pereira eu usava bastante quando queria fazer um download, no servidor, que iria demorar, deixava rodando [...]
Regio
18|Jan|2012 6Bom Post.
Eu já conhecia o Sreen mas uma duvida minha ainda persiste:
Como evitar que o usuario digite exit e saia da sessão?
Grato
Regio
Pedro Pereira
20|Jan|2012 7@Regio,
Cara, até onde eu sei não existe uma forma de controlar isso. Uma possível solução (não muito bonita) pode ser controlar o que pode ser executado usando o sudo. Mas você precisa verificar se o sudo se aplicaria ao seu caso (com poucos detalhes eu não tenho como te falar).
[]‘s
Pedro Pereira.
barataaway
24|Jan|2012 8No RHEL, pra iniciar (mais cabido “nomear”) a sessão utiliza-se o -S e não o -s.
via man>
-S sessionname
When creating a new session, this option can be used to specify a
meaningful name for the session. This name identifies the session
for “screen -list” and “screen -r” actions. It substitutes the
default [tty.host] suffix.
-s sets the default shell to the program specified, instead of the
value in the environment variable $SHELL (or “/bin/sh” if not
defined). This can also be defined through the “shell” .screenrc
command.
Um abraço e obrigado pelas dicas.
barataaway
Deixe seu comentário!
Acompanhe!
Creative Commons
Esta obra escrita por Pedro Augusto de Oliveira Pereira está licensiada sob a Creative Commons Atribuição-Uso Não-Comercial-Vedada a Criação de Obras Derivadas 3.0 Brasil License.
Mais lidos
Busca
Últimas mensagens no Twitter
Posts recentes
A design creation of Design Disease
Pedro Pereira: Administrador de redes: Linux, Cisco, FreeBSD, OpenBSD. Consultoria e serviços em software livre utilizando Samba, Subversion, Postfix, OpenLDAP, Cacti, Nagios e vários outros!
Copyright © 2007 - Pedro Pereira - is proudly powered by WordPress
InSense 1.0 Theme by Design Disease brought to you by HostGator Web Hosting.
Switch to our mobile site