Monitore sua conexão WiFi com o Wavemon

O programa Wavemon (Wave Monitor ou monitor de onda, em tradução livre), permite analisar o estado da sua conexão à rede local com muito pouco consumo de recursos do seu sistema.
O wavemon é o programa ideal para rodar em um computador como o Raspberry Pi ou, mesmo, em um laptop parrudo — caso a economia dos recursos de processamentos sejam importantes para você.

Instalação do Wavemon

O aplicativo faz parte dos repositórios das grandes distribuições GNU/Linux.
Ele pode ser facilmente instalado usando o gerenciador padrão da sua distro, portanto: apt, dnf, yum, pacman etc.
No Debian e no Ubuntu, ele pode ser instalado com o apt:


sudo apt install wavemon

Lendo listas de pacotes... Pronto
Construindo árvore de dependências       
Lendo informação de estado... Pronto
Os NOVOS pacotes a seguir serão instalados:
  wavemon
0 pacotes atualizados, 1 pacotes novos instalados, 0 a serem removidos e 51 não atualizados.
É preciso baixar 51,3 kB de arquivos.
Depois desta operação, 122 kB adicionais de espaço em disco serão usados.
Obter:1 http://deb.debian.org/debian testing/main amd64 wavemon amd64 0.8.2-1 [51,3 kB]
Baixados 51,3 kB em 1s (64,2 kB/s)          
A seleccionar pacote anteriormente não seleccionado wavemon.
(Lendo banco de dados ... 160782 ficheiros e directórios actualmente instalados.)
A preparar para desempacotar .../wavemon_0.8.2-1_amd64.deb ...
A descompactar wavemon (0.8.2-1) ...
Configurando wavemon (0.8.2-1) ...
A processar 'triggers' para man-db (2.8.3-2) ...

Uma vez instalado, basta rodar, da linha de comando (sem privilégios):


wavemon

Instale o wavemon no laptop e movimente-se dentro da casa ou do escritório, para descobrir aonde o sinal do WiFi é mais forte ou mais fraco.

wavemon

Uso básico do Wavemon

Como é possível observar, na imagem acima, o aplicativo provê, de cara, algumas informações bem interessantes.
Segue algumas dicas básicas de uso do programa.

Para começar, use a tecla ‘q’ para sair do wavemon, a qualquer momento. A tecla F10 tem o mesmo efeito.

O aplicativo tem várias telas de monitoramento ou de trabalho.
Podem ser selecionadas através das teclas de função (F1, F2 etc.)
A tela principal é a de informações gerais — e pode ser acionada com a tecla F1.

Com a tecla F2, é possível acessar o histograma referente ao nível do sinal de rede.

Como obter informações dos roteadores dos vizinhos

Faça um scan na vizinhança e determine a força dos sinais dos roteadores ao seu redor.
Para isso, você deve acessar a tela F3 – Scan, que permite varrer a rede local e obter informações sobre os sinais dos roteadores próximos.
wavemon

Estas informações (imagem acima) são disponibilizadas para quem entrou no wavemon usando privilégios administrativos.

Como determinar a memória usada por um processo no Linux, com o utilitário pmap

O utilitário pmap tem a função de exibir um mapa do uso da memória por um ou vários processos.
Com ele, é possível obter um valor, em KB, da quantidade de memória RAM usada por um programa, no seu sistema.
Você precisa informar apenas o PID (Process ID) do programa, para o pmap.
Para obter o PID, use o comando ps.
Use o ps para obter o PID de algum processo. No exemplo, abaixo, veja como obter esta informação sobre o navegador Firefox:


ps aux | grep firefox

justinc+  1889 46.2 10.6 3262532 839236 tty2   Sl+  09:21   9:00 /usr/lib/firefox-esr/firefox-esr
justinc+ 13572  0.0  0.0  12784   992 pts/0    S+   09:40   0:00 grep --color=auto firefox

O PID é exibido na 2a coluna. No meu caso, é 1889.
Agora, basta oferecer este número ao pmap:


pmap 1889

O mapa pode ser bastante extenso e você pode informar mais de um PID, se quiser.
Ao final, é exibido o total de memória (em KB) usada pelo processo.
Use o comando grep, para obter uma visualização mais resumida:


pmap 1889 | grep -i total

 total          3270732K

Você também irá encontrar informações sobre a memória ocupada por processo no diretório /proc ou com os utilitários ps ou top.
O problema destas alternativas é que será necessário calcular o valor total da memória usada “manualmente”, ou seja, adicionar os valores de memória compartilhada, mapeada e virtual, entre outros.
Já o pmap oferece o valor total, de mais fácil compreensão, ao final da listagem.

Use o progress para monitorar processos no Linux

O utilitário progress permite observar o andamento de processos dentro do coreutils.
A ferramenta, escrita em C e voltada para os sistemas operacionais GNU/Linux, exibe o progresso de comandos básicos, como o cp, mv, dd, tar, cat, rsync, grep, fgrep, egrep, cut, sort, md5sum, sha1sum, sha224sum, sha256sum, sha384sum, sha512sum, adb, gzip, gunzip, bzip2, bunzip2, xz, unxz, lzma, unlzma, zcat, bzcat, lzcat etc.

O GNU Core Utilities ou coreutils são o conjunto de utilitários básicos para manipulação de texto, de arquivos e da shell dos sistemas operacionais GNU/Linux.

Se um destes estiver rodando, o progress irá capturar e exibir informações sobre a transferência de dados, o tempo que ainda falta para finalizar etc.
Embora não venha instalado em algumas distribuições, é fácil encontrar o pacote de instalação nos repositórios.
No Debian, use o apt, para fazer a instalação:


sudo apt install progress

Se um dos comandos, citados acima, estiver em execução, a qualquer momento o progress pode capturar informações sobre ele.
Experimente com um procedimento mais demorado, como o cp, para copiar uma quantidade de arquivos grandes de uma unidade para outra.
No meu exemplo, abaixo, iniciei a cópia de um arquivo de backup de mais de 1 GB para uma unidade flash USB.


cp -r Música/ /media/justincase/yellow/ &
[1] 1056

Usei o ‘&’, acima, para enviar o processo para o segundo plano e liberar o terminal para o próximo comando:


progress -w

[ 1056] cp /home/justincase/Música/arquivo-de-musica.flac
    74.9% (32.5 MiB / 43.4 MiB)

Como você pode ver, acima, o progress exibe o progresso da cópia do arquivo atual (74%) e sai.
Você pode invocar o programa outras vezes, para saber o andamento da cópia.
Se achar melhor, pode combiná-lo com o watch, para poder observar o progresso on the fly:


watch progress -w

captura de tela progresso do comando de cópia no Linux
Veja um exemplo de acompanhamento da verificação do shasum da imagem ISO do Ubuntu:


sha512sum ubuntu-17.10-desktop-amd64.iso & watch progress -w

Se houver processos dos coreutils rodando, a ferramenta irá captar e exibir informações sobre todos eles.
Para obter uma visualização mais enxuta, use a opção ‘-q’:


progress -q

[ 2119] sha256sum /home/justincase/Downloads/ubuntu-17.10-desktop-amd64.iso
    7.4% (105.3 MiB / 1.4 GiB)

[ 2118] sha512sum /home/justincase/Downloads/ubuntu-17.10-desktop-amd64.iso
    11.5% (164.3 MiB / 1.4 GiB)

Neste modo, o tempo restante para a conclusão (remaining) de cada processo não é exibido.
Para enxugar, mais ainda, a linha de comando, use as opções ‘-m’ ou ‘-M’.
Elas substituem o uso do watch!


progress -m

Outra vantagem do uso de ‘-m’, é que a tela fica menos suja, após a execução dos comandos, e permite ver melhor o resultado de cada.
O ‘-M’, mantém o monitoramento continuadamente.
Este pode ser ideal, para execução em um terminal à parte, onde os coreutils podem ser capturados e monitorados o tempo todo no seu sistema.

Referências

https://www.gnu.org/software/coreutils/coreutils.html.

https://pt.wikipedia.org/wiki/GNU_Core_Utilities.

Use o comando watch para monitorar processos em execução

O utilitário watch é usado no Linux para rodar outros programas periodicamente e exibir resultados atualizados.
O que ele faz é reexecutar programas, até que você o mande parar.
Para interromper o seu andamento, use as teclas ^C (Ctrl + c).
O watch aceita parâmetros e opções para determinar de quanto em quanto tempo ele deve rodar novamente um comando.
Segue alguns exemplos de uso.

Como monitorar o uso das unidades de armazenamento do seu sistema

Você pode observar o espaço livre de todos os drives (internos, externos ou remotos) conectados ou montados no seu sistema ao combinar o comando df com o watch.
Veja um exemplo:


watch df -h

Como padrão, o watch reexecuta seu comando a cada 2 segundos.
linux free watch
Você pode alterar este comportamento com a opção ‘-n’ ou ‘–interval’:


watch --interval 0.5 du -h

Na linha acima, ajustei o intervalo entre uma execução e outra para meio segundo.
Desta vez, usei o comando du, que mostra a ocupação (ou uso) de cada diretório montado no sistema.
linux disk usage
Note que o watch exibe, no canto superior esquerdo da tela, o intervalo de tempo entre cada execução do programa: Every 0,5s (ou seja, “a cada meio segundo”), na imagem acima.

O comando df (disk free) mostra o espaço livre em uma unidade montada.
O du (disk used ou disk usage) mostra o uso ou a ocupação dos diretórios atuais

Como monitorar o uso da memória no Linux

O comando free é usado para mostrar a quantidade de memória livre, em diversos locais (RAM, SWAP etc).
Você pode usar o watch para verificar como o uso dos programas no seu computador afetam a memória do sistema.
Experimente o seguinte:


watch free

Aqui também é possível estabelecer um intervalo de atualização.
A visualização pode ficar mais interessante, se você permitir ao watch destacar os dados que sofreram alterações:


watch --differences --interval 0.1 free

Note que o menor intervalo possível é 0.1 segundos.
linux free memory

Outros exemplos de uso do watch

É possível encontrar outros exemplos de uso no manual do comando (man watch).
Por exemplo, para monitorar os arquivos que sofrerem algum tipo de modificação ou edição, no diretório atual, use o comando da seguinte forma:


watch -d 'ls -l'

Este tipo de comando é mais usado no diretório de logs ou no sistema de arquivos proc.

Como verificar quais portas estão abertas, com nmap

O nmap e o netstat são ferramentas tradicionais de monitoramento da rede no Linux e no UNIX.
O primeiro é comumente usado em filmes sobre hackers (ou crackers), por que tem uma “saída bonitinha” 😉
nmap list listening ports
Recentemente escrevi sobre como mudar a porta de escuta do servidor SSH, como medida bastante efetiva de segurança contra ataques. Neste caso, é útil saber quais portas estão em uso, para evitar conflitos entre serviços no seu sistema.
Neste contexto, o nmap e o netstat também podem ajudar a descobrir pontos vulneráveis do seu sistema.
Veja um exemplo de uso do nmap:


sudo nmap -sT -O localhost 

[sudo] senha para justincase:          

Starting Nmap 7.50 ( https://nmap.org ) at 2017-07-03 16:33 -03
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000092s latency).
Other addresses for localhost (not scanned): ::1
Not shown: 998 closed ports
PORT    STATE SERVICE
22/tcp  open  ssh
631/tcp open  ipp
Device type: general purpose
Running: Linux 3.X|4.X
OS CPE: cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4
OS details: Linux 3.8 - 4.9
Network Distance: 0 hops

OS detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 2.61 seconds

Destaquei, acima, o trecho em que se exibe as portas abertas (open). Aqui é mais adequado usar o comando grep, para filtrar e exibir apenas os números das portas abertas:


sudo nmap -sT -O localhost | grep -i open

22/tcp  open  ssh
631/tcp open  ipp

Entenda melhor o comando:

  • -sT — trata-se de uma opção inteira, como é possível ver no manual do comando (use ‘man nmap’, para ver mais).
    Esta opção manda o nmap fazer um rastreio da conexão TCP.
  • -O — faz a tentativa de detectar o sistema operacional sobre o qual está sendo pedida a varredura.
    A detecção permite habilitar testes específicos da plataforma analisada durante o processo.

Se acrescentarmos a opção -A, podemos obter detalhamentos da versão do sistema operacional e dos daemons:


sudo nmap -sT -O -A localhost | grep -i open

22/tcp  open  ssh     OpenSSH 7.5p1 Debian 5 (protocol 2.0)
631/tcp open  ipp     CUPS 2.2

Inclua as portas relacionadas ao protoclo UDP também:


sudo nmap -sT -sU localhost

Starting Nmap 7.50 ( https://nmap.org ) at 2017-07-03 17:26 -03
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00017s latency).
Other addresses for localhost (not scanned): ::1
Not shown: 1994 closed ports
PORT     STATE         SERVICE
22/tcp   open          ssh
631/tcp  open          ipp
68/udp   open|filtered dhcpc
631/udp  open|filtered ipp
1900/udp open|filtered upnp
5353/udp open|filtered zeroconf

Nmap done: 1 IP address (1 host up) scanned in 2.81 seconds

Você pode combinar as opções do comando acima — com a obtenção do mesmo resultado – da seguinte forma:


sudo nmap -sTU localhost

Assinar blog por e-mail

Digite seu endereço de e-mail para assinar este blog e receber notificações de novas publicações por e-mail.