Sysinfo - Informações sobre o seu computador

Publicado por Denis Doria 11/07/2008

[ Hits: 7.130 ]

Download sysinfo.sh




Exibe diversas informações sobre o sistema.

Exemplo:

sysinfo -m

[Memory]
Maximum Capacity: 4 GB
Number Of Devices: 2
Size: 1024 MB
Size: No Module Installed

MemTotal: 1002.62 MB

Mostra a capacidade máxima de memória do seu computador, o número
de slots, slots ocupados e o tamanho do pente, e o total da memória.

sysinfo -s

[System]
Manufacturer: Dell Inc.
Product Name: Latitude D630                  
Version: Not Specified
Serial Number: 3FFZJF1

Informações relevantes sobre o seu computador.

  



Esconder código-fonte

#!/bin/bash

##########################################################################################
#Sysinfo - Get a lot of information about the system
#
#Version: 0.3
#
#Author: Denis Doria de Oliveira Santos
#E-mail: denisdoria@gmail.com
#Date: 11/06/2008
###########################################################################################
#Version: 0.1
#
# +Create all base system, with the functions that I need
#
###########################################################################################
#Version: 0.2
#
# +Add getopts
# +Add usage function
# +Improved memory function
#
###########################################################################################
#Version: 0.3
#
# + Improved os information, the os function was copied from hinventory_Linux.sh
#   all hinventory code can be find in http://sourceforge.net/projects/h-inventory/,
#   some modification was done from the original code.
# +Improved memory function
# -Removed hwmisc function
#
###########################################################################################
#Version: 0.4
#
# + Created pci function
# + Improved memory function
#
###########################################################################################
[ $(whoami) != 'root' ] && echo -e "\nJust root can run this script...\nSorry, but some commands just root could exec!\n" && exit 1


A=0
S=0
C=0
M=0
N=0
D=0
O=0
B=0
H=0
W=0
P=0


function network(){
   
   #Catch all ips and interfaces
   #Captura todos os ips e suas interfaces
   echo "[Network]"
   ifconfig|fgrep inet|awk -F":| " '{print $13}'|\
   while read LINHA;
   do
      if [ $LINHA ];then

         INTERFACE=$(ifconfig|fgrep -B1 $LINHA|cut -d' ' -f1);
         echo -e "$INTERFACE\\t$LINHA";
      fi
   done
   echo ""
   lspci|fgrep Ethernet|cut -d' ' -f2-
   echo ""

}

function system(){

   #Show information about system
   #Mostra informações do sistema
   echo "[System]"
   dmidecode |grep -A4 "System Information"|sed '1d'|tr -d '\t'
   echo ""
}

function memory(){
   
   #Information about memory, number of slots and memory size
   #Informações sobre a memória, número de slots, tamanho da memória
   echo "[Memory]"
   dmidecode |sed -ne '/Physical Memory Array/,/Handle /p'|egrep '(Maximum Capacity|Number Of Devices)'|tr -d '\t'
   #dmidecode |grep -A5 "Memory Device$"|fgrep Size|tr -d '\t'
   #dmidecode|sed -n '/Memory Device$/,/Handle /p'|fgrep Size|tr -d '\t'| tee /dev/stderr |awk -F':| ' '{print $3}'|tr -d [:alpha:]|tr '\n' '+'|sed 's/+*$/\n/'|bc
   dmidecode|sed -n '/Memory Device$/,/Handle /p'|fgrep Size|tr -d '\t'
   
   echo ""
   sed -e '1!d' -e 's/..$//' -e 's/ //g' /proc/meminfo |awk -F: '{print $1": "$2/1024" MB"}'
#   fgrep MemTotal /proc/meminfo|awk -F':| ' '{print "Total Of Memory: "int($8/1024)}'
   echo ""

}

function cpu(){
   
   #Information about processor
   #Infomações sobre o processador
   echo "[CPU]"
   dmidecode |sed -ne '/Processor Information/,/Handle/p' |sed -e '/\t\t\t/d' |tr -d '\t'|\
   egrep '(Manufacturer:|Current Speed:|Family:|Socket Designation:)'|sed -e 's/\(MHz\)/\1\n/' -e 's/\(GHz\)/\1\n/'
   NUCLEOS=$(grep processor /proc/cpuinfo |wc -l)
   CHIPS=$(dmidecode |fgrep "Processor Information"|wc -l)

   NUCLEOS_POR_PROCESSADOR=$((NUCLEOS/CHIPS))
   
   echo "Number of Processors: "$CHIPS
   echo "Core per Processor: "$NUCLEOS_POR_PROCESSADOR
   echo ""
}

function disk() {

   #Information about disks
   #Informações sobre os discos   
   echo "[Disk]"
   fdisk -l 2> /dev/null|grep "Disk.*,"|cut -d, -f1 |\
   while read LINHA
   do
      echo -e "${LINHA}\n"
      printf "%-9s%12s%12s\n" 'Device' 'Size' 'Type' &&\
      fdisk -l 2> /dev/null|fgrep `echo $LINHA|awk -F" |:" '{print $2}'`|tr -d '*'|\
      fgrep -v Disk|\
      awk '{printf("%9s %10s MB %10s\n", $1,int($4/1024),$6)}'   

      echo ""

   done
   
   echo ""

}

function swap(){

   #Information about swap
   #Informação sobre o swap
   echo "[Swap]"
   fgrep dev "/proc/swaps"|awk '{print "Swap Particion: "$1"\nSwap Space: "int($3/1024)" MB"}'
   echo ""

}

function os (){


   #Check the version and the distribution of Linux
   #Verifica a versão e a distribuição Linux

NAME=`uname -s`

if [ "$NAME" = "Linux" ]
        then if test -f /etc/redhat-release; then
                DISTRIBUTION="RedHat"
                RELEASE=`cat /etc/redhat-release`
            elif test -f /etc/redhat-version; then
                DISTRIBUTION="RedHat"
                RELEASE=`cat /etc/redhat-version`
            elif test -f /etc/fedora-release; then
                DISTRIBUTION="Fedora"
                RELEASE=`cat /etc/fedora-release`
            elif test -f /etc/mandrake-release; then
                DISTRIBUTION="Mandrake"
                RELEASE=`cat /etc/mandrake-release`
            elif test -f /etc/SuSE-release; then
                DISTRIBUTION="Novell SuSE"
                RELEASE=`cat /etc/SuSE-release`
            elif test -f /etc/debian_version; then
                DISTRIBUTION="Debian"
                RELEASE=`cat /etc/debian_version`
            elif test -f /etc/debian-version; then
                DISTRIBUTION="Debian"
                RELEASE=`cat /etc/debian-version`
            elif test -f /etc/arch-release; then
                DISTRIBUTION="Arch"
                RELEASE=`cat /etc/arch-release`
            elif test -f /etc/gentoo-release; then
                DISTRIBUTION="Gentoo"
                RELEASE=`cat /etc/gentoo-release`
            elif test -f /etc/slackware-release; then
                DISTRIBUTION="Slackware"
                RELEASE=`cat /etc/slackware-release`
            elif test -f /etc/slackware-version; then
                DISTRIBUTION="Slackware"
                RELEASE=`cat /etc/slackware-version`
            elif test -f /etc/yellowdog-release; then
                DISTRIBUTION="Yellow dog"
                RELEASE=`cat /etc/yellowdog-release`
         elif test -f /etc/sourcemage-release; then
             DISTRIBUTION="Source Mage"
            RELEASE=`cat /etc/sourcemage-release`
            elif test -f /etc/smgl.iso; then
                DISTRIBUTION="Source Mage"
                RELEASE=`cat /etc/smgl.iso`
          else DISTRIBUTION="unknown"
                RELEASE="unknown"
        fi

echo "[Operating System]"
echo "Hostname: $(hostname)"
echo "Kernel Version: $(uname -r)"
echo "Operating System: $NAME" 
echo "Distribution: $DISTRIBUTION"
echo "Release: $RELEASE"

echo ""

fi


}

function hba(){

   echo "[HBA]"
   lspci|fgrep "Fibre Channel"|cut -d' ' -f2-
   echo ""

}

function usage(){

echo -e '\t-a Show all information
\t-s Show system information
\t-c Show CPU information
\t-m Show memory information
\t-n Show network information
\t-d Show disks information
\t-w Show swap information
\t-b Show HBA information
\t-o Show Operating System information\n'

}

function all(){
   
   os
   system
   cpu
   disk
   memory
   pci
   network
   swap
   hba

}

function pci(){

   echo "[PCI]"   
   dmidecode |sed -ne '/PCI/,/Handle /p'|egrep '(Current)'|tr -d '\t'

   echo ""

   echo "Total of PCI: `dmidecode |sed -ne '/PCI/,/Handle /p'|egrep '(Current)'|tr -d '\t'|wc -l`"

   echo ""
}

function sysinfo(){

   [ $H -eq 1 ] && usage && exit 0
   [ $A -eq 1 ] && all && exit 0
   [ $S -eq 1 ] && system
   [ $C -eq 1 ] && cpu
   [ $M -eq 1 ] && memory
   [ $N -eq 1 ] && network
   [ $D -eq 1 ] && disk
   [ $W -eq 1 ] && swap
   [ $O -eq 1 ] && os
   [ $B -eq 1 ] && hba
   [ $P -eq 1 ] && pci

   exit 0

}


while getopts 'aschmndwobp' OPT
do

   case $OPT in
      
      a) A=1 #all
      ;;
      s) S=1 #system
      ;;
      c) C=1 #cpu
      ;;
      m) M=1 #memory
      ;;
      n) N=1 #network
      ;;
      d) D=1 #disk
      ;;
      w) W=1 #swap
      ;;
      o) O=1 #os
      ;;
      b) B=1 #hba
      ;;
      h) H=1 #usage      
      ;;
      p) P=1 #pci
      ;;
      ?) usage && exit 1
      ;;

   esac

done

sysinfo

exit 0

Scripts recomendados

Remover kernels antigos com zenity

Estok SH 1.2b - Controle de Estoque em Shell Script

POSTFIX AUTOMÁTICO COM MYSQL E IPTABLES - LÊ O BANCO E EXIBE OS DADOS

Firewall Dinamico

Firewall simples, com opções de redirecionamento


  

Comentários
[1] Comentário enviado por kebueno em 25/11/2009 - 15:28h

amigo tentei fazer aqui mas não consegui eu preciso das seguinte informações

[System]
Manufacturer: Dell Inc.
Product Name: Latitude D630
Version: Not Specified
Serial Number: 3FFZJF1

sendo que o serial number é fundamenta, masnão estou conseguindo fazer um Script para isso se puder me ajudar agradeço



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts