Como obter informações do hardware no Linux, com o dmidecode

Vou mostrar como usar o dmidecode – um dos comandos Linux que permitem ver maiores detalhes do seu equipamento. Por estar na categoria de detecção de hardware, é muito útil no suporte técnico e dentro de scripts de instalação.
Por ter uma saída um tanto extensa, pode ser bom combiná-lo com outros comandos, como o less ou o grep.

Outro detalhe importante sobre ele é que – uma vez que ele faz a leitura de arquivos sensíveis, cujo acesso é privilegiado. Portanto, é necessário ser administrador do sistema (superusuário) para usar.

Onde baixar o dmidecode

Quem usa Windows ou Mac, pode fazer o download aqui. Usuários do Linux, provavelmente já o têm instalado em seus sistemas.

As informações obtidas com o dmidecode são confiáveis?

Quem me acompanha neste site, sabe que gosto de passar um pouco mais de teoria para os leitores leitor, no sentido de melhorar a compreensão geral do assunto.

Se preferir, contudo, sinta-se livre para pular as partes cujo conteúdo você já conheça e vá direto ao conteúdo prático, um pouco mais embaixo.

Em um de seus artigos, Joe Barr chama a atenção pro fato de que o dmidecode exibe as informações que obtém do BIOS, em um relatório — mas é o BIOS que, frequentemente não é confiável ao oferecer informações sobre o sistema. Em outras palavras, O BIOS mente sobre o seu hardware. No caso relatado, o BIOS informava falsamente a presença de suporte ao APM (Advanced Power Management ou Gestão Avançada de Energia) em uma máquina, o que impedia a inicialização de uma das versões do Red Hat Linux. Se estiver curioso, o problema foi solucionado quando o usuário desligou as opções APM — neste caso, o Linux segue em frente, usando os próprios recursos de gestão.

A página da Debian, onde são dados detalhes do pacote dmidecode, há um alerta para a pouca confiabilidade dos dados DMI ou SMBIOS.

Então, só para ficar claro: não é o dmidecode que tem problemas.
São os dados oriundos do seu BIOS que podem não ser verídicos. O programa só repassa a informação que recebeu de lá.

Usos comuns do dmidecode

Um dos usos é verificar informações como a capacidade máxima de memória suportada pelo sistema. Há, pelo menos, 43 tipos de DMIs sobre os quais o programa pode apresentar informações.
As opções mais comuns são:

  • --type ou -t — exibe informações sobre um dos tipos de DMI
  • --string ou -s — restringe as informações exibidas a uma determinada string

Para obter informações básicas sobre o BIOS, digite o comando:


sudo dmidecode --type 0

# dmidecode 2.12
SMBIOS 2.4 present.

Handle 0x0000, DMI type 0, 24 bytes
BIOS Information
    Vendor: INSYDE
    Version: IA-M10.1D
    Release Date: 04/18/2008
    ROM Size: 1024 kB
    Characteristics:
        PCI is supported
        BIOS is upgradeable
        BIOS shadowing is allowed
        Boot from CD is supported
        Selectable boot is supported
        BIOS ROM is socketed
        EDD is supported
        ACPI is supported
        USB legacy is supported
        Targeted content distribution is supported

Dentro deste mesmo exemplo, caso você queira obter apenas os dados referentes ao fabricante, use o seguinte comando:


sudo dmidecode -s bios-vendor

INSYDE

Para obter informações sobre o processador:


sudo dmidecode -t 4 | grep -i version

Version: Intel(R) Atom(TM) CPU N270   @ 1.60GHz

Você pode obter muito mais informações do BIOS sobre o processador se usar o comando assim:


sudo dmidecode -t processor

Enfim, use o manual do comando para obter maiores informações sobre o seu uso: ‘man dmidecode’.

Espero ter contribuído com dados úteis para você. Lembre-se que a melhor forma de agradecer é compartilhar a informação com seus amigos. Divirta-se!

LEIA MAIS

Use o dmidecode para saber a capacidade máxima de memória suportada pelo seu hardware

Como obter informações sobre tipo e quantidade de memória presente em um computador?
O dmidecode pode responder a estas perguntas e a outras — como a quantidade máxima de memória possível, atualmente, no seu hardware, ou a quantidade de slots presentes (vazios e ocupados) etc.

Pretende aumentar a capacidade de memória do laptop? Então estas informações são necessárias — e este utilitário o dispensa de ter que passar pelo complicado processo de abrir o equipamento para obtê-las.

Pilha de pentes de memória RAM

O dmidecode ajuda a determinar a velocidade e o tipo de memória presente no seu sistema. Assim, você já chega ao vendedor com a informação exata do que vai precisar.

O dmidecode não vem com o Windows, mas dá para fazer download dele (inclusive para outros sistemas operacionais) no site oficial.

Como usar o dmidecode

Por ler arquivos sensíveis do sistema, o dmidecode precisa ser executado com privilégios de administrador (no Linux).

O comando que segue mostra a quantidade máxima de memória suportada e o número de slots disponíveis para encaixar pentes de memória RAM, no seu sistema, entre outras coisas.
Observe as duas linhas em destaque:


sudo dmidecode -t 16

# dmidecode 2.12
SMBIOS 2.4 present.

Handle 0x0015, DMI type 16, 15 bytes
Physical Memory Array
    Location: System Board Or Motherboard
    Use: System Memory
    Error Correction Type: None
    Maximum Capacity: 4 GB
    Error Information Handle: Not Provided
    Number Of Devices: 2

As linhas destacadas mostram a capacidade máxima (maximum capacity) e o número de slots disponíveis (number of devices).

Fazendo uso do comando grep, você pode reduzir a quantidade de informação ao que é essencial – o que pode ser útil, se você estiver inserindo o dmidecode em um script:


sudo dmidecode -t 16 | grep Maximum

    Maximum Capacity: 4 GB

Opções de memórias RAM

Mais informação da memória do seu sistema com o dmidecode

Consultando o manual – man dmidecode – é possível aprender mais sobre como inquirir o sistema.

Veja como obter a quantidade atual de memória presente no hardware, o tipo e o clock dos pentes de memória (em destaque):


sudo dmidecode -t 17

# dmidecode 2.12
SMBIOS 2.4 present.

Handle 0x0017, DMI type 17, 27 bytes
Memory Device
    Array Handle: 0x0015
    Error Information Handle: Not Provided
    Total Width: 64 bits
    Data Width: 64 bits
    Size: 2048 MB
    Form Factor: DIMM
    Set: None
    Locator: J2
    Bank Locator: CHAN A DIMM 0
    Type: DDR2
    Type Detail: Synchronous
    Speed: 533 MHz
    Manufacturer: 0x7F94000000000000
    Serial Number: 0xB0AB0300
    Asset Tag: Unknown
    Part Number: 0x53473536343536384647384E574B46535152

O manual descreve os tipos 5, 6, 16 e 17 como tipos de informação acerca da memória.

  • 5memory controller ou controlador de memória.
  • 6memory module ou módulo de memória.
  • 16physcial memory array ou array físico de memória.
  • 17memory device ou dispositivo de memória.

Você pode inquirir o sistema sobre qualquer uma destas informações ou sobre todas de uma vez. Veja:


sudo dmidecode --type 5,6,16,17

A opção ‘–type’ equivale à ‘-t’, como já foi visto.

É possível citar expressamente o nome do dispositivo em vez do número, caso você ache mais fácil memorizar palavras:


sudo dmidecode --type memory

Experimente e me diga o que achou! 😉

LEIA MAIS:

Saiba mais sobre o comando dmidecode
O comando grep, em exemplos práticos.

Como criar novo usuário no MySQL

Neste post, vou mostrar algumas formas de criar um novo usuário no servidor de banco de dados MySQL e como acessar o sistema através dele.
É interessante conhecer e saber usar o sofisticado sistema de gestão de usuários, do MySQL, que controla quem pode acessar e de onde pode fazê-lo.
Uma vez que é uma atividade administrativa, de superusuário, você precisa ter acesso ao root para realizar os procedimentos descritos aqui e usar o comando GRANT do SQL para ajustar privilégios dos usuários criados – e, só pra lembrar, quando falamos em root no MySQL, não estamos nos referindo ao root no Linux. Cada um no seu quadrado.

Como atribuir uma senha à sua conta administrativa

Se foi você quem instalou o sistema, provavelmente já configurou detalhes como a senha do root.
Para atribuir uma senha nova (pela primeira vez) à sua conta root, use o mysqladmin, no terminal:

mysqladmin -u root password NOVASENHA

Se for o caso de alterar uma senha preexistente, use o comando como segue – por exemplo, vamos trocar a senha de uruguay para brasil:

mysqladmin -u root -puruguay password brasil

Sim. A senha deve ficar “grudada” à opção -p.

LEIA MAIS

Como criar uma conta de usuário no MySQL

No tópico anterior, nos certificamos de ter condições de entrar na conta administrativa do MySQL, root. Agora vamos entrar, no banco de dados, para iniciar o procedimento de criar contas para outros usuários.
Entre no MySQL, usando a senha root, já cadastrada:

mysql -u root -p

ou

mysql -u root -h localhost -p

Crie um novo banco de dados MySQL chamado exemplo:

CREATE DATABASE exemplo;

Entre no banco de dados, com o comando USE:

USE exemplo;

Agora crie, com o comando GRANT um usuário chamado papaleguas, com todos os privilégios sobre o banco de dados exemplo — troque a senha minhasenha pela que mais lhe convier:

GRANT ALL ON exemplo.* TO papaleguas@localhost IDENTIFIED BY 'minhasenha';

Como conectar ao banco de dados MySQL usando a minha nova conta de usuário

Para entrar no MySQL, usando uma conta de usuário comum, como a que foi criada no tópico anterior, já fazendo uso do banco de dados exemplo, use o seguinte procedimento:
Se estiver dentro do MySQL, use o comando QUIT, para sair:

QUIT;

Em seguida, na linha de comando…

mysql -u papaleguas -p exemplo

ou

mysql -u papaleguas -h localhost -p exemplo

onde,

  • -u papaleguas — é o nome do usuário MySQL;
  • -h localhost — é o nome do servidor local, onde se encontra instalado o MySQL – você deve sempre alterar estas variáveis para atender as suas condições;
  • -p — quando esta opção é fornecida sem a senha (grudadinha), o sistema a pedirá antes de entrar;
  • exemplo — ao fornecer o nome de um banco de dados, antes de entrar, o sistema já se conecta a ele após a autenticação. Isto é opcional. Você pode escolher o banco de dados que deseja usar, depois de entrar no MySQL

Espero ter conseguido sanar suas dúvidas com esta explicação.
Quer ler mais sobre MySQL? Então, use o sistema de busca do site!

Como verificar a memória SWAP no Linux

Vou mostrar aqui como é simples verificar alguns dados sobre a memória SWAP no seu sistema Linux e como monitorar o uso que o sistema está a fazer dela.
Para isto, você não precisa de nada além de digitar os comandos certos em um terminal ou console.

O que é memória SWAP

De maneira resumida, a memória SWAP ou virtual é uma técnica de gestão de memória que usa tanto softwares como hardwares para “aumentar a quantidade de memória disponível”.
Resumidamente, usa espaço no seu disco rígido, como se fosse memória RAM.

Você pode obter maiores informações sobre o assunto no artigo perguntas e respostas sobre a memória SWAP.

Checando o arquivo /proc/swaps


cat /proc/swaps

conteudo do arquivo swaps

O arquivo ‘/proc/swaps’, em 5 colunas, informações sobre a memória virtual do seu sistema.

  • Filename — exibe o nome do arquivo ou partição do disco em que a memória virtual se encontra instalada. Sim, você pode ter mais de um arquivo swap;
  • Type — especifica o tipo de swap que você tem no seu sistema. No meu, tal como a grande maioria dos usuários, o tipo é partition – ou seja, eu reservei uma partição inteira só pro arquivo de troca;
  • Size — este é o tamanho do espaço disponibilizado em cada arquivo swap usado no seu sistema;
  • Used — do espaço disponível, este é o espaço usado, ocupado,
  • Priority — mostra a prioridade de cada arquivo swap. Isto pode ser mudado com o comando swapon ou no arquivo /etc/fstab. A menos que você tenha certeza do que está fazendo é melhor continuar a deixar o kernel determinar estes valores.

Verifique a memória disponível no sistema com o free

O free é um comando que exibe uma série de informações sobre o uso atual da memória no sistema – inclusive a memória virtual, que é o nosso assunto aqui.

Você irá encontrar o comando free no seu smartphone Android também e com as mesmas funcionalidades.

Abaixo, sugiro executar o comando com as opções -ht:


free -ht

             total       usado      livre    compart.  buffers     em cache
Mem:          2,0G       1,7G       265M         0B       193M       529M
-/+ buffers/cache:       1,0G       987M
Swap:         2,0G       342M       1,6G
Total:        3,9G       2,0G       1,9G
  • a opção ‘-h’ (human) faz com que os resultados sejam exibidos na tela em formatos mais facilmente legíveis
  • a opção ‘-t’ exibe uma totalização ao final

Note que o comando tira um instantâneo do uso da memória do sistema. Se você deseja fazer um monitoramento do uso da memória do seu sistema, durante um determinado tempo, use o comando assim:


free -ht s1

Isto vai manter o sistema de monitoramento no ar e se atualizando a cada 1 segundo.monitorar uso da memória com free no Linux

Faça um teste:

  • Execute o comando acima, para manter o free a monitorar o uso da memória do sistema;
  • Comece a abrir vários programas ao mesmo tempo (podem ser várias janelas de um navegador);
  • Observe o painel de informações, enquanto isto. O uso do SWAP muda muito?!

Há outras formas (mais eficientes, até) de se monitorar o uso da memória SWAP no seu sistema. O uso do free e da leitura direta do arquivo ‘/proc/swaps’ são as formas mais rudimentares para se saber o que se passa nesta área do seu sistema – e qualquer pessoa pode ter acesso a elas.

Você pode usar o comando swapon para obter uma visualização detalhada do uso do arquivo de troca no sistema:


sudo swapon -v

NAME      TYPE      SIZE USED PRIO
/dev/sdb2 partition   3G   0B   -1
/dev/sda2 partition 8,8G   0B   -2

O exemplo acima mostra sendo usadas para swap. O assunto é melhor delineado no artigo Como usar múltiplas partições ou arquivos de swap.

LEIA MAIS

O comando tar em 9 exemplos.

O comando tar é uma ferramenta eficiente e que tem sido muito usada, por muito tempo para compactar arquivos, diretórios, discos inteiros etc. — muitas vezes com o objetivo de fazer volumosos backups. Sim. Ele aguenta trabalho pesado.
Neste post, vou mostrar, através de alguns exemplos, como realizar algumas operações com o comando tar.
E, quando falamos nele, nos referimos tanto a um formato de arquivo quanto a um programa — presente no UNIX desde seus primeiros dias e desenvolvido, inicialmente, para gravar dados em dispositivos sequencias (gravadores de fitas).
O mundo mudou, os dispositivos de gravação evoluíram e o tar continua sendo muito utilizado – predominantemente como meio de comprimir múltiplos arquivos.

Como criar um arquivo tar simples

Um arquivo tar é comumente chamado, em inglês, tarball (bola tar) e pode ser facilmente criada a partir de um diretório. No exemplo, abaixo, vou mostrar a criação de arquivos_temporarios.tar, a partir do conteúdo do meu diretório temp/:

tar -cvf arquivos_temporarios.tar temp/
temp/
temp/portuguese_brazil.zip
temp/portuguese_brazil.lng

As opções usadas na declaração tar -cvf têm os seguintes efeitos:

  • c – (create) cria uma novo arquivo .tar
  • v – (verbose) torna a execução do comando mais “verbosa”, ou seja, ele vai “contando” o que está fazendo
  • f – indica que o resultado será do tipo arquivo (file)

Você pode experimentar usar -vv em substituição ao -v para ver o comando ser executado com mais verbosidade.

Como criar um arquivo .tar.gz

Um arquivo .tar.gz nada mais é que um arquivo .tar comprimido através do gzip – é por isto que ele tem o .gz na sua extensão. Para atingir este objetivo, use a opção -z, em conjunto com as anteriores. Veja:

tar -cvzf arquivos_temporarios.tar.gz temp/

Note que acrescentei o z e alterei o nome do arquivo de saída para temporarios.tar.gz

bash shell logo on keyboard

Como criar um arquivo bz2

bzip2 bzip logoArquivos bz2, são arquivos bzip2 – um compressor de dados que usa o algoritmo Burrows-Wheeler e pode reduzir o espaço ocupado por um arquivo em até 10% do seu volume original.
Em função da maior capacidade de compressão, eu recomendo usar sempre o bzip. A desvantagem do seu uso está na maior demora para comprimir ou descomprimir arquivos.
Veja como usar o bzip2, no lugar do gzip, na compressão de arquivos tar:

tar -cvjf arquivos_temporarios.tar.bz2 temp/

Note que substituí a opção z por j, no exemplo acima. A extensão também foi alterada para bz2

A extensão dos arquivos

Antes de seguir, gostaria de falar rapidamente sobre as extensões dos arquivos.
Você é livre para escolher a extensão que quiser. O arquivo de saída, do exemplo anterior, poderia se chamar temporarios.fofinhos – o conteúdo continuaria sendo exatamente o mesmo.
Mas o objetivo da extensão de um arquivo não é “ser fofa” ou bonita. Antes, ela deve ser informativa e ajudar os usuários a entender de que tipo se trata aquele arquivo, de forma que se possa usar o comando certo em relação a ele. Mais a frente, vamos ver que os comandos para descompressão dos arquivos variam em função de ter sido usado bzip (ou bzip2) ou gzip na sua compressão.

Extensões comuns ao usar o tar

Já que estamos falando no assunto, há alguns padrões bastante difundidos:

  • arquivos tar, comprimidos com gzip, usam extensões .tar.gz ou .tgz
  • arquivos tar, comprimidos com bzip2, usam predominantemente extensões .tar.bz ou .tbz ou .bz2

Como extrair arquivos tar

Para extrair o conteúdo de um arquivo tar, usamos a opção -x. Veja como funciona:

tar -xvf icones.tar

Se o arquivo estiver comprimido com o gzip:

tar -xvfz icones.tar.gz

Se estiver comprimido com bzip2:

tar -xvfj icones.tar.bz

Nota: O arquivo será sempre descomprimido no diretório atual. Use o comando pwd, caso não saiba em que diretório você se encontra.
Se quiser indicar outro diretório para descompactar o arquivo, use a opção -C acompanhada do diretório de destino. No exemplo abaixo, vou direcionar a extração do conteúdo do arquivo icones.tar.bz pro diretório ~/meus_icones/:

tar -xvfj icones.tar.bz -C ~/meus_icones/

Notou que usei a opção -C antes do diretório destino?

Como listar o conteúdo de um arquivo tar

A opção -t é a que permite listar o conteúdo de arquivos tar. Veja como funciona:

tar -tvf icones.tar
drwxr-xr-x root/root         0 2013-11-19 01:22 opt/icons/
-rw-r--r-- root/root     68458 2013-11-13 00:42 komodo128.png
-rw-r--r-- root/root     12053 2013-11-13 00:42 komodo48.png
-rw-r--r-- root/root      2349 2013-11-13 00:42 komodo16.xpm
-rw-r--r-- root/root     87697 2013-11-13 00:42 komodo128.xpm

Como listar o conteúdo de arquivos tar.gz ou tar.bz

Nestes casos o comando permanece o mesmo. Tome apenas o cuidado de indicar corretamente os nomes dos arquivos cujo conteúdo você deseja listar.
Para listar um arquivo .tar.gz:

tar -tvf icones.tar.gz

Para listar um arquivo .tar.bz:

tar -tvf icones.tar.bz

Como extrair apenas um arquivo de dentro do arquivo tar

Neste exemplo, vou extrair o arquivo komodo128.png de dentro do arquivo icones.tar:

tar -xvf icones.tar komodo128.png

Para remover um arquivo com o mesmo nome de dentro de um arquivo tar.gz, acrescente a opção -z:

tar -zxvf icones.tar.gz komodo128.png

Se o arquivo comprimido for um tar.bz, use a opção -j:

tar -jxvf icones.tar.bz komodo128.png

Como extrair vários arquivos de um arquivo tar, tar.gz ou tar.bz

Neste caso, listamos os diversos arquivos, usando aspas. Observe os exemplos:

tar -xvf icones.tar "komodo128.png" "komodo64.png"
tar -zxvf icones.tar.gz "komodo128.png" "komodo64.png"
tar -jxvf icones.tar.bz "komodo128.png" "komodo64.png"

Como extrair vários arquivos de um arquivo .tar, .tar.gz ou .tar.bz usando coringas

Através de coringas, podemos indicar um grupo de arquivos sobre o qual desejamos efetuar uma ação. Vou mostrar como extrair um grupo separado de arquivos de dentro de arquivo tar, tar.gz e tar.bz com o uso de coringas, ainda usando o exemplo do tópico anterior:

tar -xvf icones.tar --wildcards *.xpm
tar -zxvf icones.tar.gz --wildcards *.xpm
tar -jxvf icones.tar.bz --wildcards *.xpm

Como adicionar arquivos ou diretórios a arquivos tar já existentes

Esta possibilidade é especialmente útil para quem deseja acrescentar mais arquivos ou diretórios a um arquivo tar de backup preexistente.
No exemplo que segue, vou acrescentar o arquivo komodo32b.png ao arquivo tareado icones.tar. Para isto, vou usar a opção -r (append):

tar -rvf icones.tar komodo32b.png

Ou um diretório inteiro:

tar -rvf backup-sql-2014-15-02.tar sql/

Como adicionar arquivos ou diretórios a arquivos tar.gz ou tar.bz

Neste caso, a solução é recriar o arquivo, já incluindo estes novos na sua nova bola tar – o tar não tem como acrescentar arquivos a arquivos tar compactados com bzip2 ou gzip.

Como verificar arquivos tar

Arquivos de backup precisam ser checados sempre.
Seria desolador, após um desastre (toc, toc, toc), descobrir que as cópias de segurança não funcionam.
Novamente, não é possível aplicar a solução a arquivos tar.gz e tar.bz diretamente, com o comando tar – qualquer que seja a extensão, arquivos compactados, seja com bzip2 ou gzip.
Por isto, os scripts de backup, costumam tarear primeiro os arquivos, verificá-los e, se tudo estiver certo, compactá-los.
Veja um exemplo de verificação, com o seu resultado:

tar -cvWf backup-2014-02-11.tar

A solução para testar se o arquivo final tar.gz ou tar.bz está bom é usar o utilitário gzip ou o bzip2, com a opção ‘-t’:

gzip -tv backup.tar.gz 
backup.tar.gz:	 OK

ou

bzip2 -tv backup.tar.bz 
backup.tar.bz:	 OK

Conclusão

Para concluir, segue uma pequena tabela com as opções abordadas neste texto, para ajudar a lembrar;

  • c — para criar um arquivo do tipo arquivo;
  • x — para extrair arquivos de dentro do arquivo tar
  • v — mostra o processo na tela. A opção -vv exibe mais detalhes ainda;
  • f — determina o nome do arquivo tar;
  • t — exibe o conteúdo;
  • j — compacta ou descompacta os arquivos via bzip2
  • z — compacta ou descompacta os arquivos via gzip;
  • r — adiciona arquivos ao tar;
  • W — verifica a integridade do arquivo tar;
  • wildcards — permite trabalhar com coringas.

Por enquanto é só, pessoal!Por enquanto, é só! Espero que este breve tutorial tenha sido suficiente para sanar suas dúvidas. Use o man tar no terminal para ver outras opções de uso do comando tar e, caso eu tenha esquecido alguma coisa, no texto, por favor comente ali embaixo.