Inventário de Hardware

Publicado por Alexandre Martins da Cunha (última atualização em 23/11/2018)

[ Hits: 7.208 ]

Download inventariohw3.0.sh

Download 1542877802.inventariohw3.4.sh (versão 2)




Precisei esses dias de um inventário de hardware (principalmente, quantidade de memória, quantidade de slots e quais em uso) e não achei nada que fosse aplicado direto pelo terminal, para rodar nas estações.

Eis a saída do mesmo:

=========================================================
=  Informações de inventário - 20/02/2017 00:55 =
=========================================================

Nome do computador: quarto

1 - SISTEMA

1.1 Informações do Sistema Operacional:
     - Arquitetura: x86_64
     - Versão do Kernel: 4.9.0-0.bpo.1-amd64

1.2 Informações da Distribuição:
     - Distribuição:  Debian
     - Versão:  8.7
     - Codinome:  jessie

2 - REDE

2.1-Informações Placa de Rede (eth0):
     - Endereço IPv4: 192.168.1.12
     - Endereço MAC:  1c:1b:0d:92:9d:8f

3 - HARDWARE

3.1 Processador
     - Fabricante:  Intel(R) Core(TM) i5-7500 CPU @ 3.40GHz
     - Modelo:  Intel(R) Core(TM) i5-7500 CPU @ 3.40GHz
     - Velocidade (MHz): 3655MHz
     - Cache:  6144 KB

3.2 Memória
     - Máximo Suportado:  64 GB
     - Número de Slot(s):  4
     - Quantidade Instalada:  7941MB
     - Slot(s) em Uso: 8192

3.3 Discos

3.1- Disco sdb
     - Tamanho : 2,7 TiB
     - Tabela de partição  : gpt
      Partições:
     
          - Nome :  sdb1
          - Tamanho :  3001GB
          - Tipo :  ntfs
    
3.1- Disco sdc
     - Tamanho : 1,8 TiB
     - Tabela de partição  : msdos
      Partições:
     
          - Nome :  sdc1
          - Tamanho :  2000GB
          - Tipo :  ntfs
    
3.1- Disco sda
     - Tamanho : 465,8 GiB
     - Tabela de partição  : msdos
      Partições:
     
          - Nome :  sda1
          - Tamanho :  367MB
          - Tipo :  ntfs
    
          - Nome :  sda2
          - Tamanho :  126GB
          - Tipo :  ntfs
    
          - Nome :  sda3
          - Tamanho :  126GB
          - Tipo :  btrfs
    
          - Nome :  sda4
          - Tamanho :  248GB
          - Tipo :  ntfs

  



Versões atualizadas deste script

Versão 2 - Enviado por Alexandre Martins da Cunha em 22/11/2018

Changelog: Histórico:
#
# v1.0 2017-01-10, Alexandre Cunha:
# - Versão inicial
#
# v2.0 2017-02-09, Alexandre Cunha:
# - Acresentado suporte a discos
# - Acresentado suporte a partições
#
# v3.0 2017-02-20, Alexandre Cunha:
# - Programa reescrito do zero
# - Refinado o código
# - Uso de variáveis BD e funções(discos, particoes e interfacesRedes)
#
# v3.1 2017-03-20, Alexandre Cunha:
# - Pequenos Ajustes
#
# v3.2 2017-11-06, Alexandre Cunha:
# - Modificado o suporte a Rede para o Debian 9
#
# v3.3 2018-01-10, Alexandre Cunha:
# - Corrigido bug nos discos
#
# v3.4 2018-11-22, Alexandre Cunha:
# - Corrigido bug partição não formatada ou desconhecida
# - Alinhamento da variável BD a direita.
# Licença: GPL.

Download 1542877802.inventariohw3.4.sh


Esconder código-fonte

#!/bin/bash
#
# Inventário de Hardware.sh - Gera o inventário de Hardware
#
# Site      : http://ittisolucoes.com.br
# Autor     : Alexandre Cunha (Cunha A.M) <alexandremartinscunha@yahoo.com.br> 
# Manutenção: Alexandre Cunha (Cunha A.M) <alexandremartinscunha@yahoo.com.br>
#
#  -------------------------------------------------------------
#   Este programa cria um arquivo com o nome da máquina data e hora, anexando os dados refernetes a configuração do hardware
#  -------------------------------------------------------------
#
#
# Histórico:
#
#    v1.0 2017-01-10, Alexandre Cunha:
#       - Versão inicial 
#
#    v2.0 2017-02-09, Alexandre Cunha:
#       - Acresentado suporte a discos
#       - Acresentado suporte a partições
#   
#    v3.0 2017-02-20, Alexandre Cunha:
#       - Programa reescrito do zero
#       - Refinado o código
#       - Uso de variáveis BD e funções(discos, particoes e interfacesRedes) 
#
#
# Licença: GPL.

if [ $(id -u) != 0 ] ; then 
   echo "Você precisar ser root para rodar esse script"
   exit 1 ; 
fi


function interfacesRede(){
   interfacesRede=`ifconfig | cut -d" " -f1 | grep -v "lo"`
   numero=1
   for interfacesNome in $interfacesRede
   do
      echo "2.$((numero++))""-Informações Placa de Rede ($interfacesNome):"                                    >> $BD                  
      echo "     ""- Endereço IPv4: "`ifconfig $interfacesNome | grep 'inet end' | awk '{print $3}'`                  >> $BD   
      echo "     ""- Endereço MAC:  "`ifconfig $interfacesNome | grep HW | cut -c48-`                              >> $BD         
      echo ""                                                                                    >> $BD      
   done
}

function particoes(){
   particoes=`fdisk -l | grep /dev/ | grep -v Disco | grep $1 | cut -d" " -f1 | cut -d"/" -f3`
   numero=1
   for particao in $particoes
   do
      echo "     ""     ""- Nome : " $particao                                                                                    >> $BD
      capacidade=`parted /dev/$particao print | grep $particao | cut -d" " -f3`
      tipo=`parted /dev/$particao print | grep -v File | grep -v  Disk | grep -v model | grep -v Sector | grep -v Partition | grep -v model | cut -d" " -f14`
      echo "     ""     ""- Tamanho : " $capacidade                                                      >> $BD
      echo "     ""     ""- Tipo : " $tipo                                                            >> $BD
      echo "     "                                                                              >> $BD                        
   done
}


function discos(){
   discos=`fdisk -l | grep Disco | cut -d" " -f2 | cut -d"/" -f3| sed 's/://g'`
   numero=1
   for disco in $discos
   do
      echo "3.$((numero++))""- Disco $disco "                                                            >> $BD      
      capacidade=`fdisk -l | grep Disco | grep -e $disco | cut -d" " -f3`                                       >> $BD
      escala=`fdisk -l | grep Disco | grep -e $disco | cut -d" " -f4 | sed 's/,//g'`                              >> $BD
      echo "     ""- Tamanho : "$capacidade $escala                                                      >> $BD
      echo "     ""- Tabela de partição  : "`parted /dev/$disco print | grep "Partition Table" | cut -d" " -f3`         >> $BD
      echo "      ""Partições:"                                                                     >> $BD
      echo "      "                                                                              >> $BD
      particoes $disco
   done
}
   BD=`hostname`.$(date +%d-%m-%Y-%H:%M).log
   echo ""                                                                                                      >> $BD
   echo "========================================================="                                            >> $BD
   echo "=  Informações de inventário - `date +'%d/%m/%Y %H:%M'` ="                                            >> $BD
   echo "========================================================="                                             >> $BD
   echo ""                                                                                           >> $BD 
   echo " Nome do computador: `hostname`"                                                                 >> $BD
   echo ""                                                                                       >> $BD
   echo "1 - SISTEMA"                                                                              >> $BD 
   echo ""                                                                                           >> $BD
   echo "1.1 Informações do Sistema Operacional:"                                                           >> $BD
   echo "     ""- Arquitetura: "`uname -m`                                                               >> $BD
   echo "     ""- Versão do Kernel: "`uname -r`                                                         >> $BD
   echo ""                                                                                       >> $BD
   echo "1.2 Informações da Distribuição:"                                                                 >> $BD
   echo "     ""- Distribuição: "`lsb_release -i | cut -d: -f2`                                             >> $BD
   echo "     ""- Versão: "`lsb_release -r | cut -d: -f2`                                                    >> $BD
   echo "     ""- Codinome: "`lsb_release -c | cut -d: -f2`                                                 >> $BD
   echo ""                                                                                     >> $BD
   echo "2 - REDE"                                                                                 >> $BD
   echo ""                                                                                     >> $BD
   interfacesRede                                                                                  
   echo "3 - HARDWARE"                                                                              >> $BD  
   echo ""                                                                                           >> $BD
   echo "3.1 Processador"                                                                              >> $BD
   echo "     ""- Fabricante: "`cat /proc/cpuinfo | head -n 31 | grep 'model name'  | cut -d : -f2`                    >> $BD
   echo "     ""- Modelo: "`cat /proc/cpuinfo | head -n 31 | grep 'model name'  | cut -d : -f2`                       >> $BD
   echo "     ""- Velocidade (MHz):" `cat /proc/cpuinfo | head -n 31 | grep 'cpu MHz' | cut -d : -f2 | cut -d . -f1`"MHz"    >> $BD
   echo "     ""- Cache: "`cat /proc/cpuinfo | head -n 31 | grep 'cache size' | cut -d : -f2 `                        >> $BD
   echo ""                                                                                         >> $BD
   echo "3.2 Memória"                                                                               >> $BD
   echo "     ""- Máximo Suportado: "`dmidecode -t memory | grep 'Maximum Capacity'| cut -d : -f2`                     >> $BD
   echo "     ""- Número de Slot(s): "`dmidecode -t memory | grep 'Number Of Devices' | cut -d : -f2`                   >> $BD
   echo "     ""- Quantidade Instalada:  "`free -m | grep 'Mem:' | awk '{print $2}'`"MB"                            >> $BD
   echo "     ""- Slot(s) em Uso: "`dmidecode -t memory | grep 'Size' | grep -v "No Module Installed" | cut -d" "  -f2`   >> $BD
   echo ""                                                                                         >> $BD
   echo "3.3 Discos"                                                                               >> $BD
   echo ""                                                                                       >> $BD   
   discos
   echo ""   
   echo "Gerado Inventário $BD" 
   sleep 2
   cat $BD   

Scripts recomendados

Copie DVDs para o seu HD

Script para controle do servidor ProFTP no Slackware

Limpar memoria

Enciclopédia em Shell-Script

Papel de parede mundial ( para quem usa GUI )


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts