Archive for the ‘comandos’ category

nc

June 4, 2010

A ferramenta nc é um ótimo quebra-galho. Quando você precisa testar o link entre dois hosts e não quer subir um serviço adequado, você pode simplesmente testá-lo com o netcat. Com ele é possível criar tanto servidores como clientes TCP ou UDP! Para um melhor entendimento, teste em um dos hosts criar um servidor TCP ouvindo na porta 5000:

$ nc -l 5000

E, então, conecte-se à esse host através de outra máquina com o comando:

$ nc <IP host servidor> 5000

Se você fez a parte de redes corretamente, o cliente vai conectar-se e tudo o que ele receber na entrada padrão vai ser escrita na saída padrão do servidor (e vice-versa) ^^

Para testar uma troca de mensagens UDP, você deve adicionar o parâmetro -u em ambos comandos.

Ah, com essa ferramenta também é possível enviar arquivos pela rede! Primeiro abra o servidor redirecionando a saída padrão para um arquivo, da seguinte maneira:

$ nc -l 5000 > /tmp/arquivo

E, então, crie o cliente enviando um arquivo para entrada padrão do netcat:

$ cat /bin/bash | nc <IP host servidor> 5000

Com isso foi enviado a ferramenta bash para o host servidor 🙂

É uma boa alternativa para envio de arquivos sem SSH, não! hehehe

TODO: benchmarking SSH vs. NC

Referência: man nc

Ouvindo: Moby – Spirit

tcpdump

June 4, 2010

O tcpdump é uma ferramenta que ajuda muito no dia-a-dia de um administrador de rede. Com ele é possível verificar todo o fluxo de datagramas na rede.

Existem outras ferramentas que desempenham papel semelhante como o wireshark, porém é necessário um X para executá-lo. Por isso acho bem mais importante enteder o tcpdump (além de ser nativo na maioria das distribuições *unix e bsd).

Para executá-lo é preciso ser super usuário. O primeiro comando, para começar, é somente para ver os pacotes na interface eth0:

# tcpdump -vvni eth0

Aqui usamos os parâmetros -vv para um nível bom de verbose (aceita até 3 níveis de verbose), -n para não traduzir IP -> nomes, e -i <interface> sendo a interface que você deseja ouvir. Muitas vezes é preciso filtrar o conteúdo que se deseja ouvir:

# tcpdump -vvni eth0 not port 22

Com isso excluímos a porta 22 (SSH) do filtro.

# tcpdump -vvni eth0 not ip multicast and not port ‘( 22 or 23 )’ and src net 192.168.1.0/24

Aqui foi usado um filtro bem mais avançado, com três limitações: sem pacotes para redes multicast, sem as portas 22 e 23 (telnet) e o pacote tem que ser de uma fonte na rede 192.168.1.0/24.

Para um melhor entendimento das respostas do tcpdump eu recomendo um estudo nas camadas de enlace/rede/transporte de algum livro teórico, como os famosos Kurose ou Tanenbaum.

Referência: man tcpdump; Tanembaum, Andrew S. – Computer Networks; Kurose / Ross – Computer Networking

Ouvindo: Moby – Sunday

Device is busy

May 20, 2010

Se você costuma usar Linux, você deve ter visto essa mensagem ou outras parecidas (file system on device is busy) algumas vezes.. e, em algumas delas, você teve que reiniciar a máquina só para desalocar o device, certo? Bom, existe um jeito de descobrir qual aplicativo está alocando-o com o fstat.

Esse aplicativos não é nativo do Unix, então você provavelmente terá que puxá-lo.. (farei um post ensinando a procurar/instalar pacotes nos SOs que costumo usar…)

Vamos simular o seguinte: tentei desmontar o meu pen drive:

# umount /media/KINGSTON

Unmount failed: Cannot unmount because file system on device is busy

Para descobrir quem está alocando esse device:

# lsof | grep ‘/media/KINGSTON’

bash      3095      usuario  cwd       DIR       8,17     4096          1 /media/KINGSTON
lsof      3655      usuario  cwd       DIR       8,17     4096          1 /media/KINGSTON
grep      3656      usuario  cwd       DIR       8,17     4096          1 /media/KINGSTON
lsof      3657      usuario  cwd       DIR       8,17     4096          1 /media/KINGSTON

Aqui podemos identificadar que o comando bash (PID 3095), lsof (PID 3655), grep (PID 3656) e lsof (PID 3657) estão alocando o device!

Agora podemos fechar o bash, e tentar desmontar o pen drive novamente.. e tudo dará certo! 😉

Não limite o uso do lsof para esses erros.. ele já me ajudou muito no dia-a-dia, até mesmo pra saber quais são os programas que estão alocando mais disco!

Flw vlw!

Referência: man lsof

…. ouvindo ZZ Top – Pearl Necklace (hoje é o show!! \m/)