quarta-feira, 20 de fevereiro de 2008

script matador

Habitualmente ao usar telnet ou ssh, quando o usuário não efetua um loggof correto, devido principalmente a travamentos de máquinas, erros de rede, ou mesmo fechar sessão de forma forçada, ocorre de ficar com o processo preso referente aquela sessão aberta. Mesmo que a conexão já tenha sido fechada, o processo vira um zumbi.
Imaginemos isso ocorrer diariamente numa rede com mais de 200 usuários. Ligando sem parar reclamando que não consegue abrir tela do sistema, que precisa vender, bater meta etc....

Ao deparar com esse inferno na terra, corri atrás de uma solução para facilitar o trabalho de suporte. Criei um script que basta executar para derrubar, ou mesmo matar os processos de determinado usuário.

O nome do script é bem sugestivo: assassino
Pois, ao executar e inserir o nome do usuário, ele não deixa nada, mata tudo.

Claro que no linux/unix, pode-se fazer qualquer coisa em pelo menos duas formas diferentes. Então pode surgir alguem dizendo.. "ahh, eu faço isso e aquilo e funciona.". Parabéns!!! Esse é o espirito open source, pesquisar/aprender/testar/comemorar.

Segue abaixo o script:

#!/bin/bash
count=0
var=1

sudo touch /tmp/proc1.cont
sudo chmod 777 /tmp/proc1.cont
sudo touch /tmp/proc.cont
sudo chmod 777 /tmp/proc.cont

echo digite nome pra matar
read nome

sudo fuser -v /bin/bash | grep $nome | grep '/bin/bash' | awk '{ print $3 }' | egrep '[0-9]' > /tmp/proc.cont
sudo fuser -v /bin/bash | grep $nome | awk '{ print $2 }' | egrep '[0-9]' >> /tmp/proc.cont

count=$(wc -l /tmp/proc.cont | awk '{ print $1 }')
echo $count processos encontrados para matar

if [ $count -gt "0" ]; then

while [ $var != 0 ]; do

echo matando processo: $(head -1 /tmp/proc.cont)
sudo kill -9 $(head -1 /tmp/proc.cont)
sed '1d' /tmp/proc.cont > /tmp/proc1.cont
cat /tmp/proc1.cont > /tmp/proc.cont
count=$(expr $count - 1)

if [ $count -eq "0" ]; then
var=0
fi
done
fi

domingo, 6 de janeiro de 2008

Atualização de tópico

Vejam a resposta o Banco Real a respeito da incompatibilidade com Linux. Entrem no tópico "Banco Real barra Linux".
Link

sábado, 5 de janeiro de 2008

INSTALAÇÃO E CONFIGURAÇÃO DE SERVIDOR OPENFIRE com SPARK

Plataforma: Linux (Ubuntu 7.10)


Descrição:

O openfire é um servidor Jabber de código aberto e gratuito. Possui ferramenta de gerenciamento via web e extremamente flexível. Tem como base de funcionamento o Java. Neste tutorial será descrito como realizar a instalação a partir de seu código fonte, sendo assim possível sua utilização em qualquer sistema Linux. Será ainda descrito como instalar o cliente Jabber: Spark.

Não é obrigatório que se utilize o spark com o servidor openfire, qualquer cliente Jabber pode ser utilizado.

Pré-requisitos:

Instalação do pacote sun-java6-jre

para o pacote ser instalado, deverá antes descomentar as linhas referentes a pacotes multiverse no /etc/apt/sources.list

#apt-get update

# apt-get install sun-java6-jre


Para saber se o java está funcionando corretamente, basta executar o seguinte comando:

#java -version

Deverá retornar a versão do java instalado.



Após baixar o pacote openfire_3_4_3.tar.gz ou versão mais recente no site: http://www.igniterealtime.org/, criar pasta /opt


#mkdir /opt

Descompactar o pacote:

#tar zxvf openfire_3_4_3.tar.gz -C /opt

Será descompactado e será criada pasta /opt/openfire como demonstrado abaixo:

Para iniciar o servidor openfire, basta entrar no diretorio /opt/openfire/bin

e executar o script:

#/opt/openfire/bin/openfire start

Existe um pequeno bug neste script que mostra na tela uma mensagem



Não é um erro, apenas uma falha no script que não atrapalha o funcionamento do servidor, basta realizar a correção no mesmo como segue:


editar o arquivo /opt/openfire/bin/openfire


Na linha abaixo alterar acrescentando:

../logs/STDOUT.log 2>../logs/STDERR.log &


arquivo original:


arquivo alterado:


Iniciando novamente o servidor, veremos que não haverá mais mensagem.



Para saber se o servidor realmente foi iniciado, basta verificar a porta 9090 aberta no sistema:



Agora poderemos abrir o gerenciador com interface web em nosso servidor. Basta abrir no navegador o endereço http://localhost:9090



Neste passo vamos personalizar nosso servidor, começando pelo idioma, escolha Português logicamente.



Clique em continue. Na tela seguinte deverá informar o dominio de sua rede e as portas de administração, as quais pode deixar as padronizadas. Alterar apenas no caso de haver em sua rede algum outro serviço que utilize as mesmas portas para não ocasionar conflito.


Clique em continue. A seguir deverá ser definida a forma de acesso a banco de dados. Escolha banco de dados interno, para uma configuração mais rápida e pôr em funcionamento o serviço de forma mas prática, indicado para iniciantes ou redes pequenas.



Continue. A tela seguinte refere-se a forma de gerenciamento de usuários. Novamente para redes simples, selecione o padrão.




Continuando, na tela seguinte deverá ser informada uma senha para o administrador do serviço. Altamente recomendado por questões de segurança.


Em seguida finaliza o setup inicial. Basta logar-se no console administrador para maiores configurações:






Percebe-se que a interface é intuitiva, indicando diversas informações, como por exemplo a plataforma, tempo que o servidor está ativo, quantidade de memória utilizada pelo serviço, idioma, fuso horário, etc...

Este tutorial não abrange todas as opções no momento, mas nos próximos, serão abordados mais tópicos.

Inicialmente deveremos criar usuários para que se possa acessar nosso novo servidor jabber. Sendo assim, clique na aba usuários/grupos.

Por padrão já existe o próprio usuário admin. Clique no lado esquerdo, criar novo usuário.



Preencha os dados do usuário e clique em criar & Criar Outro. Para haver conversa, precisamos de pelo menos dois usuários.


Pronto, já possuimos 2 usuários. Precisamos agora instalar o cliente Jabber.



O escolhido para este tutorial foi o Spark.


Baixar o pacote: spark_2_5_8.tar.gz ou versão mais atual no site:

http://www.igniterealtime.org/,


Descompactar em seu diretório de aplicativos preferido.


#tar zxvf spark_2_5_8.tar.gz -C /usr/local


Será criada pasta /usr/local/Spark


Na estação deverá possuir o java instalado, basta seguir os passos iniciais desse tutorial. Pode ser o mesmo pacote java instalado no servidor. A verificação de funcionamento é a mesma.


Em seguida, no ambiente gráfico abrir um terminal e logar-se como root, para ativar a configuração inicial do spark.


Feito isso, pode fechar o spark e executar como usuário comum.



Pronto, o cliente jabber já esta logado. Basta agora outro usuario entrar na conversa. Para isso, podemos adicionar o usuário na lista de contatos, clicando em contatos adicionar. Em nosso servidor temos o usuaŕio suporte e o usuário usuario.


Na Estação do usuário usuario, devemos fazer o mesmo processo de instalação do spark. Feito isso, vamos iniciar a conversa.


Abaixo uma simulação entre os dois clientes jabber e suas listas de contato.






Agora a conversa está sendo realizada entre os dois clientes.

Neste tutorial foi feita a instalação e configuração básica do servidor Openfire com clientes Spark.

Continuarei a postar dicas. Como criar grupos, realizando log de conversas. Configuração de outros clientes jabber etc. Espero que este tutorial seja útil.



quarta-feira, 26 de dezembro de 2007

CUPS - Estranho

Passado o Natal, a vida novamente volta a quase normalidade....

O cups é um gerenciador de impressões que roda em sistemas *nix (linux, unix like). Tenho tido diversos problemas com ele no que se refere a certas anomalias tais como: sumir impressoras, determinadas impressoras ficarem com status "stopped" sem motivo algum. Não encontrando o motivo, busquei então a forma de contornar esses problemas.
O cups funciona baseado em um arquivo de configuração printers.conf onde ficam configuradas as filas de impressão localizado normalmente em /etc/cups/printers.conf

solução encontrada: foi feita uma cópia do arquivo printers.conf para /etc/cups/printers.conf.backup
Fiz um script simples onde faz parar o serviço do cups
#/etc/init.d/cups stop

copia o arquivo printers.conf.backup para printers.conf (substituindo)
#cp /etc/cups/printers.conf.backup /etc/cups/printers.conf

inicia novamente o cups
#/etc/init.d/cups start

Pronto. As impressões que estavam presas são liberadas.

Explicação: o arquivo original printers.conf guarda o status das impressoras, então se alguma está no status "stopped" não sai impressão alguma, sendo assim ao substituir o arquivo original pelo backup onde as impressoras estão todas com status "idle", o servidor entende que as impressoras estão aceitando novos trabalhos.

É uma solução simples. Para evitar a necessidade de executar o script toda hora manualmente, basta adicionar no cron do seu servidor, a cada 2, 3 ou 5 minutos, dependendo do impacto que possa causar em seu servidor. Na empresa que trabalho agendei para cada 2min. Nunca mais tive ligação solicitando liberação de impressora na rede, salvo os casos em que o problema é de software ou maquina travada.

sexta-feira, 21 de dezembro de 2007

Java + Banco do Brasil + linux/firefox

Estou utilizando o Ubuntu Linux 7.10, com firefox 2.0.6. Ao acessar o Banco do Brasil, é necessário ter o Java instalado devido ao teclado virtual. Sendo que para acessar, o java deve ser o sun-java, não podendo ser o java fornecido no site www.java.com, estranho, pois o próprio site do banco indica o link para download no www.java.com. Sendo assim, para poder acessar o Banco do Brasil via firefox n o Ubuntu tive de instalar o pacote: sun-java6-plugin. Nada dificil, basta o comando:
# apt-get install sun-java6-plugin

Mas antes tem de habilitar no sources do apt os pacotes multiverse. Após a instalação, basta reiniciar o navegador e abrir novamente o site do banco.

Firefox desconfiado...


O Firefox até no linux é prevenido. Veja esta tela, fiz download de um .pdf e ao abrir o arquivo me alertou da possibilidade de ter virus, se eu tinha certeza de que queria fazer isto mesmo. Pensei por um momento estar no windows sem querer.. :)

Banco Real barra Linux


Inicio a primeira postagem desse blog com uma notícia absurda. O Banco ABN/AMRO REAL alterou seu módulo de segurança do Internet Banking, com isso sistemas Linux passaram a ser incompatíveis. Liguei para o suporte e disseram que o Linux não é homologado pelo banco e que o cliente deve utilizar Windows.
Para utilizar outro sistema que não seja este, tem que solicitar a liberação do módulo de segurança para poder acessar sua conta com recursos de movimentação. Sendo que após esse bloqueio o cliente tem de renovar depois de 120 dias para continuar acessando.

Realmente algo inusitado ocorrer isso justamente quando as empresas, governo e diversos paises desenvolvem ferramentas para acesso com software livre, o ABN/REAL regride tecnologicamente e impõe a seus clientes o uso de um sistema frágil que precisa diversas ferramentas para se proteger.

Segue captura de tela.


UPDATE (06.01.08) Resposta do Banco Real
Prezado Celso,

Em resposta à sua mensagem, informamos que conforme divulgado no Real Internet Banking, o Módulo de Proteção Real está disponível para o sistema operacional Windows e navegadores Internet Explorer (5.5 ou superior) e Firefox (1.5 ou superior).

Havendo impossibilidade de instalação devido ao sistema operacional, browser ou demais situações, por favor, contate a Central de Atendimento do Real Internet Banking pelo telefone (11) 3553-4445 (São Paulo), (21) 3460 - 1303 (Rio de Janeiro) ou 0800-2864040 (Demais localidades), 24 horas por dia, 7 dias por semana.

Agradecemos o seu interesse pelo Banco Real. Estamos fazendo mais que o possível para oferecer a você e a todos os nossos clientes um banco cada vez melhor.

Estamos à disposição.

Atenciosamente,
Rodnei Ferreira
Sugestões & Reclamações
Banco ABN AMRO Real S/A