Conheça este utilitário de linha de comando para controlar discos no Linux

Unidades de armazenamento externas ou internas podem ser acessadas e controladas com o utilitário de linha de comando (CLI) udisksctl.
O programa permite realizar diversas operações avançadas nas unidades conectadas.

Obter informações, verificar o status, monitorar unidades, montar/desmontar dispositivos, travar/destravar unidades criptografadas, desligar completamente ou configurar o SMART etc. — são algumas das tarefas que podem ser executadas com este pequeno utilitário.

Abra um terminal e me acompanhe nas experiências que seguem.

Como obter informações sobre um dispositivo de armazenamento conectado ao meu computador

O utilitário tem autocompletar para facilitar a digitação, portanto use a tecla TAB para tornar mais eficiente o uso dele.

A opção status permite ver as unidades atualmente conectadas ao seu sistema:


udisksctl status

MODEL                     REVISION  SERIAL               DEVICE
--------------------------------------------------------------------------
Hitachi HTS545050A7E380   GG2OA6C0  TE85123RJG3K4W       sda     
SanDisk SSD i100 24GB     11.56.04  123200143249         sdb     
WDC WD5000BPVT-22HXZT1    01.01A01  WD-WXD1A41D1154      sdc     
TOSHIBA MK5059GSXP        GT001L    51NAP03LT            sdd     
SanDisk Cruzer Blade      1.26      4C530699960225111162 sde

Como você pode ver, acima, as informações obtidas e mostradas pelo utilitário são bem detalhadas.

Use a opção info para obter informações específicas sobre um objeto (lembre-se de telcar TAB para completar a digitação):


udisksctl info --drive SanDisk_Cruzer_Blade_4C530699960225111162

A opção dump irá mostrar uma quantidade de dados muito maior, sobre todas as unidades possíveis:


udisksctl dump

Os dados detalhados das unidades podem ocupar diversas páginas de terminal. Use a tecla de espaçamento, para passar as páginas e a tecla Q para sair do modo de visualização do comando.

Sugiro usar o comando grep para obter informações específicas:

udisksctl dump | grep Hitachi
    Drive:                      '/org/freedesktop/UDisks2/drives/Hitachi_HTS545050A7E380_TE85123RJG3K4W'
    Id:                         by-id-ata-Hitachi_HTS545050A7E380_TE85123RJG3K4W
    Symlinks:                   /dev/disk/by-id/ata-Hitachi_HTS545050A7E380_TE85123RJG3K4W
    Drive:                      '/org/freedesktop/UDisks2/drives/Hitachi_HTS545050A7E380_TE85123RJG3K4W'
    Id:                         by-id-ata-Hitachi_HTS545050A7E380_TE85123RJG3K4W-part1
    Symlinks:                   /dev/disk/by-id/ata-Hitachi_HTS545050A7E380_TE85123RJG3K4W-part1
    Drive:                      '/org/freedesktop/UDisks2/drives/Hitachi_HTS545050A7E380_TE85123RJG3K4W'
    Id:                         by-id-ata-Hitachi_HTS545050A7E380_TE85123RJG3K4W-part2
    Symlinks:                   /dev/disk/by-id/ata-Hitachi_HTS545050A7E380_TE85123RJG3K4W-part2
/org/freedesktop/UDisks2/drives/Hitachi_HTS545050A7E380_TE85123RJG3K4W:
    Id:                         Hitachi-HTS545050A7E380-TE85123RJG3K4W
    Model:                      Hitachi HTS545050A7E380

Para monitorar uma unidade use a opção monitor, seguida do nome do dispositivo:


udisksctl monitor SanDisk_Cruzer_Blade_4C530699960225111162 
Monitoring the udisks daemon. Press Ctrl+C to exit.
14:55:24.735: The udisks-daemon is running (name-owner :1.1046).

A unidade, acima, está desmontada e “dormente”. Se houver alguma atividade ligada a ela, o terminal irá mostrar.
Quando quiser terminar o programa tecle Ctrl+C.

Como trabalhar com unidades criptografadas usando o udisksctl

As opções lock e unlock se referem às unidades alvo de criptografia.
No exemplo, abaixo, uso um drive USB criptografado com LUKS.

Para destravar, use unlock e forneça a senha:


udisksctl unlock -b /dev/sde

Passphrase: 
Unlocked /dev/sde as /dev/dm-0.

Para travar novamente, use lock:


udisksctl lock -b /dev/sde

Locked /dev/sde.

O comando pode ser útil dentro de scripts de backup que necessitem de alguma criptografia, para manter os seus dados ainda mais seguros.

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.