Brincando com o screen

Depois de tomar uma surra configurando o meu postfix para funcionar na modalidade de satelite (e não como um servidor), finalmente consegui graças ao Mário partir para a próxima etapa: configurar o acesso à meu email usando o Mutt com autenticação à base de sasl. Acredito que agora já estou pronto para criar minha própria “receita” caso eu precise fazer isso novamente.

O motivo pelo qual eu me coloquei nesta posição foi devido às restrições de acesso à internet da minha companhia. Tudo aqui é super bloqueado e a maioria das portas são bloqueadas… bem, maioria, mas não todas como eu descobri “por acidente” um dia destes. Acontece que talvez por pressa do administrador ou por subestimarem seus próprios usuários, tudo realmente foi bloqueado excepto pelas 2 portas mais óbvias: 80 e 443!!! Todo mundo que precisa acessar a net tem seu browser (todos usam Internet Explorer… eu uso a versão portátil do Firefox no meu thumb drive) configurado para usar o proxy pela porta 91. Um dia, “P” da vida por não poder acessar certos sites de código, mudei minha configuração pra usar a porta 80 e pronto! Liberdade quase que total! O único problema era acessar certas coisas como o IRC, IMAP email, e escutar internet rádios! Pouco a pouco fui descobrindo formas de burlar a “segurança” mas ainda faltava o acesso à meu email e toda a parefernalha que eu geralmente uso para assinar meus emails, como o pgp. Andei perguntando por aí e aparentemente não existe um sistema via web para acessar seu email e assiná-las com pgp…Daí o Mutt!

O que eu posso fazer agora é conectar no meu server usando Putty (no trabalho uso windows 2000) e conecto em uma sessão que eu criei pelo screen. Para quem não conhece o screen, ele é um programa que te permite iniciar sessões virtuais que podem ser interrompidas, mantidas “vivas”, e restauradas depois sem perda de dados. Um exemplo seria quando você conecta em casa via ssh, resolve instalar algo, mas antes que o processo possa terminar, decide que tem de desconectar para fazer alguma outra coisa. Usando o screen você poderia então iniciar uma sessão virtual e dar-lhe um nome, como “apt-get remoto” por exemplo.

screen -S “apt-get remoto”

Você notará que seu console vai mudar para uma nova tela virtual… Agora você inicia o processo que queira da forma normal…  Vamos pretender que queremos fazer um apt-get upgrade do sistema.

sudo apt-get update sudo apt-get upgrade

Neste exato momento, seu chefe entra em seu escritório e de joelhos implora para que você o ajude a remover o Windows e instalar Ubuntu Dapper Drake (para que ele possa se gabar de ser l33t h4x0r depois). Mas você não quer deixar sua instalação executando sozinha… Você poderia trancar seu pc e deixar o processo executando… mas você se considera l33t também e quer aproveitar a ocasião para exibir para o chefe os seus skillz. Você simplesmente clica a combinação CRTL + “a” (apertando as teclas CTRL e A juntas ao mesmo tempo e soltando-as), “d” e pronto. Sua sessão “apt-get remoto” continua ativa mas agora está em segundo plano. A diferença entre fazer isso com o screen e enviar um processo para o segundo plano (usando bg ou CTRL + Z por exemplo) é que caso você desconecte da sua sessão ssh inicial, a sessão “apt-get remoto” continua ativa e pode ser re-conectada depois a qualquer momento. Vamos então assumir que durante o tempo que você esteve fora de seu escritório, alguém resolveu desligar o seu pc para poder conectar o microondas e fazer pipoca! Não tem problema! Assim que você pegar um pouco de pipoca como consolo pelos danos causados, conecte seu pc e entre novamente em seu pc remoto via ssh. Como nós sabemos o nome da sessão do screen, podemos re-conectar usando o comando:

screen -r “apt-get remoto”

e para a surpresa de todos, se o processo de atualizar o seu pc ainda não estiver acabado, você poderá acompanha o desenvolvimento como se nada tivesse acontecido.

Legal mesmo é usar o screen para acessar seu email (como eu faço agora usando o Mutt) ou até mesmo entrar no IRC usando algo como o BitchX! Existem muitas outras coisas legais que podem ser feitas pelo screen (como trabalhar em um arquivo ao mesmo tempo com outra pessoa de forma interativa), mas isso provavelmente vai virar um outro post. Para mais detalhes, cheque o man pages… e para animar os interessados, abaixo seguem alguns comandos para serem usados no screen. Divirtam-se!

screen -r: re-conecta screen -x: sessão compartilhada screen -list: lista de todas sessões screen abertas screen -r

Já dentro do screen:

ctrl + a, c - cria uma nova sessão screen ctrl + a, ctrl + a -alternar entre sessões ctrl + d - desconecta de uma sessão (sem finalizá-la) ctrl + [número] - pula para janela x ctrl + " - menu interativo listando todas sessões

Tags
comments powered by Disqus