relatório de hardware usando shell script [RESOLVIDO]

1. relatório de hardware usando shell script [RESOLVIDO]

jorge
katzer

(usa Ubuntu)

Enviado em 29/02/2012 - 06:39h

Estou fazendo um programa shell script para gerar um relatório de hardware. Uso o comando hwinfo --disk | egrep '(Model:|Vendor:|Device:|Size)' para gerar o arquivo abaixo:

Model: "SAMSUNG HD322HJ"
Vendor: "SAMSUNG"
Device: "HD322HJ"
Size: 625142448 sectors a 512 bytes
Model: "SAMSUNG HD321HJ"
Vendor: "SAMSUNG"
Device: "HD321HJ"
Size: 625142448 sectors a 512 bytes

Os dois discos que tenho são de 320 Gb. Desejo que o resultado do tamanho seja exibido no relatório da forma Size: 320 Gb.

Se eu usar algo como

x=$(echo "(625142448*512)/1000000000" | bc)
echo $x

tenho o retorno de 320 Gb desejado, mas não sei como fazer isso, pois posso ter máquinas com um nr variado de HD.


  


2. MELHOR RESPOSTA

Marcos Paulo Ferreira
daemonio

(usa Slackware)

Enviado em 29/02/2012 - 08:47h

Olá,

Coloquei seus comandos em um script e criei uma função de conversão:


#!/bin/bash
# relatorio.sh

function alterar_tamanho {
echo -n 'Size: '
x=$(echo "($2 * 512)/1000000000" | bc)
echo $x GB
}

hwinfo --disk | egrep '(Model:|Vendor:|Device:|Size)' |
while read LINE;
do
[[ $LINE =~ ^Size: ]] && alterar_tamanho $LINE ||
echo $LINE
done



Para executar:
$ chmod +x relatorio.sh
$ ./relatorio.sh

Model: "SAMSUNG HD322HJ"
Vendor: "SAMSUNG"
Device: "HD322HJ"
Size: 320 GB
Model: "SAMSUNG HD321HJ"
Vendor: "SAMSUNG"
Device: "HD321HJ"
Size: 320 GB


No mais o que o script faz é ler linha por linha da saída do hwinfo e quando ele encontrar uma linha que começa com 'Size: ', essa linha é fornecida para a função alterar_tamanho para ela retornar em GB.

Em alguns casos, os comandos oferecem opções como --human-readable e --size-blocks para retornar os tamanhos em outras unidades. Não sei se é o caso do hwinfo (não tenho ele instalado), mas vale a pena conferir a man page.

Acho que é isso. t+

3. relatório de hardware usando shell script

jorge
katzer

(usa Ubuntu)

Enviado em 29/02/2012 - 09:53h

Obrigado Marcos. Resolveu meu problema.







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts