Sysinfo versão 0.7
Publicado por Denis Doria 22/09/2008
[ Hits: 5.546 ]
Atualização do script sysinfo.sh:
http://vivaolinux.com.br/script/Sysinfo-Informacoes-sobre-o-seu-computador
Essa atualização corrige um BUG, e também traz algumas modificações no código original, além de melhorar algumas formas de capturar as informações do computador.
#!/bin/bash ########################################################################################## #Sysinfo - Get a lot of information about the system # #Version: 0.7 # #Author: Denis Doria de Oliveira Santos #E-mail: denisdoria@gmail.com #Date: 11/09/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 # ########################################################################################### #Version: 0.5 # # +Improved network function # +Improved memory function # +Improved os function (I prefer the new style) # ########################################################################################### #Version 0.6 # # -Removed the hinventory os function (thanks your code help me very much :-)) ) # +Improved os function with the lsb_release (how could I live without this command???) # ########################################################################################### #Version 0.7 # #* BUG FIXED - (BUG REPORT) CPU info have problem when the numbers of processor is # different than the number of chips in the mother board. # ########################################################################################### [ $(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]" #Get all interfaces ifconfig |cut -d' ' -f1|sed '/^$/d'|\ while read INTERFACE; do #For each interface get the ip IP=$(ifconfig|fgrep -A1 -m1 ${INTERFACE}|tail -1|cut -d: -f2|awk '{print $1}') echo -e "${INTERFACE}\\t${IP}"; 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)}' sed -e '/MemTotal:/!d' -e 's/ //g' /proc/meminfo |awk -F: '{print $1": "$2/1024" MB"}' 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/' local NUCLEOS=$(grep processor /proc/cpuinfo |wc -l) local CHIPS=$(dmidecode |fgrep "Processor Information"|wc -l) local CHIPS_ATIVOS=$(dmidecode |sed -ne '/Processor Information/,/Handle/p' |fgrep 'Current Speed'|grep -v 'Current Speed:.*Unknown'|wc -l) local NUCLEOS_POR_PROCESSADOR=$((NUCLEOS/CHIPS_ATIVOS)) echo "Number of Sockets: "$CHIPS echo "Number of Processors:"$CHIPS_ATIVOS echo "Core per Processor: "$NUCLEOS_POR_PROCESSADOR echo "" } function disk() { #Information about disks #Informações sobre os discos echo "[Disk]" #For each disk fdisk -l 2> /dev/null|grep "Disk.*,"|cut -d, -f1 |\ while read LINHA do #Show the partitions of each disk 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 -m1 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 [ -f /etc/redhat-release ]; then # DISTRIBUTION="RedHat" # RELEASE=$(cat /etc/redhat-release) # elif [ -f /etc/redhat-version ]; then # DISTRIBUTION="RedHat" # RELEASE=$(cat /etc/redhat-version) # elif [ -f /etc/fedora-release ]; then # DISTRIBUTION="Fedora" # RELEASE=$(cat /etc/fedora-release) # elif [ -f /etc/mandrake-release ]; then # DISTRIBUTION="Mandrake" # RELEASE=$(cat /etc/mandrake-release) # elif [ -f /etc/SuSE-release ]; then # DISTRIBUTION="Novell SuSE" # RELEASE=$(cat /etc/SuSE-release) # elif [ -f /etc/debian_version ]; then # DISTRIBUTION="Debian" # RELEASE=$(cat /etc/debian_version) # elif [ -f /etc/debian-version ]; then # DISTRIBUTION="Debian" # RELEASE=$(cat /etc/debian-version) # elif [ -f /etc/arch-release ]; then # DISTRIBUTION="Arch" # RELEASE=$(cat /etc/arch-release) # elif [ -f /etc/gentoo-release ]; then # DISTRIBUTION="Gentoo" # RELEASE=$(cat /etc/gentoo-release) # elif [ -f /etc/slackware-release ]; then # DISTRIBUTION="Slackware" # RELEASE=$(cat /etc/slackware-release) # elif [ -f /etc/slackware-version ]; then # DISTRIBUTION="Slackware" # RELEASE=$(cat /etc/slackware-version) # elif [ -f /etc/yellowdog-release ]; then # DISTRIBUTION="Yellow dog" # RELEASE=$(cat /etc/yellowdog-release) # elif [ -f /etc/sourcemage-release ]; then # DISTRIBUTION="Source Mage" # RELEASE=$(cat /etc/sourcemage-release) # elif [ -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)" lsb_release -irc #echo "Operating System: $NAME" #echo "Distribution: $DISTRIBUTION" #echo "Release: $RELEASE" fi echo "" } function hba(){ echo "[HBA]" lspci|fgrep -m1 "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
Gerenciamento do Samba com Dialog
Detecta e bloqueia tentativa de acesso ao SSH
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Flatpak: remover runtimes não usados e pacotes
Mudar o gerenciador de login (GDM para SDDM e vice-versa) - parte 2
Como atualizar o Debian 8 para o 10 (10)
Dica sobre iptables ACCEPT e DROP (6)
NGNIX - Aplicar SNAT para evitar roteamento assimetrico (29)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta