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.559 ]

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

Download de vídeos do Youtube

Configurando endereço de rede - Slackware, Debian, CentOS/RHEL

Script simples para verificar usuários logados na maquina e as postas abertas

Configuração da placa Pixel View Hybrid semi-automatizada

Atualizar status do MSN via shell script


  

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