PC Report - Coleta lista de dispositivos instalados e logs

Publicado por Isaque Vieira de Sousa Alves (última atualização em 14/12/2010)

[ Hits: 8.545 ]

Homepage: www.isaquealves.com

Download pcreport.sh




Criei este script para ajudar alguns colegas que após instalar Ubuntu em seus nobos, ficavam sem conseguir conectar à internet. O script coleta informações diversas, como lista de dispositivos instalados e logs do computador.

Como o objetivo não é executá-lo em terminal modo texto, não fiz nenhuma checagem a respeito de ambiente gráfico etc. Caso haja interesse, será fácil adicionar isso.

  



Esconder código-fonte

#!/bin/sh
#
#
#Este  script foi criado para ajudar a solucionar problemas de usuarios iniciantes (em fase de migração ou dualbooters)
#Ele coleta informações sobre hardware, registros de eventos do sistema (logs), etc.
#
#Para maiores informações, consulte as páginas do manual listadas abaixo:
# man alias
# man echo
# man sleep
# help if
# man read
# man apt-get
# man dpkg
# man lspci
# man ifconfig
# man tar
# Em caso de dúvidas, visite o site www.vivaolinux.com.br
#
#Autor : Isaque Vieira de Sousa Alves
#visite também www.isaquealves.com

MOUNTPOINT="vazio"
AUTH=""
YES="y"

alias appinst='sudo apt-get -y install'

echo "{FONTE}33[01;31m ======================  NOOB report generator  v 0.0.2 ======================="
echo ""
echo "{FONTE}33[01;31m                      LEIA TUDO COM A MÁXIMA ATENÇÃO"
echo ""
sleep 1
echo "{FONTE}33[01;33m                EM HIPÓTESE ALGUMA, EXECUTE O COMANDO {FONTE}33[01;31m'sudo rm -rf /' "
echo ""
sleep 1
echo ""
echo "{FONTE}33[01;32m OBS.: O ponto de montagem preferencialmente deve se referir a um pendrive ou partição ativa do computador.{FONTE}33[01;00m"
echo ""
sleep 2

ZENITY=`dpkg --status zenity | grep Status | awk '{print $4}'` #checa o status do zenity no dpkg
DEPENDENCIES=`dpkg --status zenity | grep Depend `        #obtem as dependencias do zenity


if [ $ZENITY = "installed" ] ; #verifica se o status é 'installed'
then
   echo "Zenity encontrado. Iniciando inteface gráfica!!"
else
   echo "Este script faz uso de Interface Gráfica utilizando o Zenity. "
   echo "O Zenity não está instalado."
   echo "Veja as dependencias do Zenity abaixo: "
   echo $DEPENDENCIES
   echo "----------"
   echo " Você autoriza a instalação do zenity e de todas as suas dependências? [y | n]"
   read AUTH
   if [ $AUTH = "$YES" ] ;
   then
       appinst zenity
    else
   exit 0
    fi
fi
zenity --info --window-icon=info.png --text "Esteja seguro sobre o ponto de montagem antes de prosseguir"


#
#Executa uma repetição enquanto a variavel MOUNTPOINT tiver como valor 'vazio'
#
until [ "$MOUNTPOINT" != "vazio" ]; do
   CL="2"
   
   #Obtem um possivel ponto de montagem para a variavel MP
   MP=$(zenity --entry \
            --width=400 \
            --height=150 \
            --title="Informe o ponto de montagem" \
            --text="Ponto de montagem: (disk para /media/disk, etc) " )
   #Verifica se o usuario clicou em ok
   if [ $? -eq 0 ]
      then
        MOUNTPOINT="$MP"
        CL=$(zenity --question \
                --title "Cuidado !"  \
            --text "O dispositivo de armazenamento está montado em /media/$MOUNTPOINT.\n Esta informação está correta?" )

        if [ $? -ne 0 ]
         then
            MOUNTPOINT="vazio"
        else
         MOUNTPOINT="$MP"
       fi
   fi 
   
done


#Imprime as linhas abaixo para o arquivo info.txt
echo "======= Generating PC Report =======" >  /media/$MOUNTPOINT/info.txt

#imprime para o arquivo info.txt  a data de execução do script
echo "Executado em " `date` >>  /media/$MOUNTPOINT/info.txt

#imprime para o arquivo info.txt  o resultado do comando lspci: man lspci
echo " --------- LSPCI " >>  /media/$MOUNTPOINT/info.txt
lspci >>  /media/$MOUNTPOINT/info.txt

#imprime para o arquivo info.txt  o resultado do comando lspci -vv : man lspci
echo " --------- LSPCI VV" >>  /media/$MOUNTPOINT/info.txt
lspci -vv >> /media/$MOUNTPOINT/info.txt

#imprime para o arquivo info.txt  o resultado do comando lspci -vvv : man lspci
echo " --------- LSPCI VVV" >>  /media/$MOUNTPOINT/info.txt
lspci -vvv >> /media/$MOUNTPOINT/info.txt

#imprime para o arquivo info.txt  o resultado do comando ifconfig : man ifconfig
echo " --------- IFCONFIG" >>  /media/$MOUNTPOINT/info.txt
ifconfig >> /media/$MOUNTPOINT/info.txt


CL=$(zenity --question \
                --title "Atenção!"  \
            --text "Deseja criar um arquivo compactado com os logs de seu sistema para ajudar a diagnosticar\n
                      o problema mais facilmente?\n É recomendado que vocẽ o faça!!" )

if [ $? -eq 0 ]
then


   # @TODO Tratar a string resultante da checklist para obter os nomes dos arquivos 
   #                a serem adicionados ao pacote (melhor estratégia)   
   #
   #TARLOGS=$(zenity --width 300 --height 400 --list  --text "Quais os logs deseja incluir no pacote? (Recomendado: todos)" \
   #                   --checklist  --column "Selecione" --column "options" \
   #               TRUE "/var/log/dmesg" \
   #               TRUE "/var/log/syslog" \
   #               TRUE "/var/log/X.0.log" \
   #               TRUE "/var/log/auth"\
   #               TRUE "/var/log/kern.log"\
   #               TRUE "/var/log/fsck" \
   #               TRUE "/var/log/dpkg.log" \
   #                --separator="\n"); 
   
   sudo tar -cvvf /media/$MOUNTPOINT/info.tar /var/log/dmesg
   sudo tar -rvf /media/$MOUNTPOINT/info.tar /var/log/syslog
   sudo tar -rvf /media/$MOUNTPOINT/info.tar /var/log/X.0.log
   sudo tar -rvf /media/$MOUNTPOINT/info.tar /var/log/auth.log
   sudo tar -rvf /media/$MOUNTPOINT/info.tar /var/log/kern.log
   sudo tar -rvf /media/$MOUNTPOINT/info.tar /var/log/fsck
   sudo tar -rvf /media/$MOUNTPOINT/info.tar /var/log/dpkg.log
   sudo tar -rvf /media/$MOUNTPOINT/info.tar /media/$MOUNTPOINT/info.txt
fi

CL=$(zenity --question \
                --title "Atenção!"  \
            --text "Deseja abrir o diretorio onde os arquivos foram criados para conferir se tudo está correto? (É bom conferir ;) )" )
if [ $? -eq 0 ]
   then
         `nautilus /media/$MOUNTPOINT/`
fi
zenity --info --window-icon=info.png --text "Processo finalizado."


Scripts recomendados

Firewall

Script para conversao de video compativel com PS3

Gerador de senhas aleatórias com pwgen

Configuração pós instalação do Slackware

pegaMAC - pega o endereço MAC da eth0


  

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