quarta-feira, 2 de novembro de 2011

Acelerando Shellscript - Parte 2

Este post vai servir para entender um pouco sobre o funcionamento do sistema no Linux. Algumas pastas são criadas em tempo de execução e muito se pode saber sobre o funcionamento do Kernel, até mesmo para gerar relatórios de sistema. Através dos comandos ls e cat, é possível desbravar o conteúdo de arquivos e diretórios de sistema mesmo com usuário comum. Para isso é necessário conhecer algumas pastas de sistema como:

/proc
/proc/cpuinfo
/proc/meminfo
/proc/modules
/proc/uptime
/proc/sys/net/ipv4
/proc/sys/net/ipforward

Abaixo segue apenas um exemplo de como capturar alguns dados que podem ser inclusive mais bem trabalhados com outros comandos e usando a criatividade.


#!/bin/bash

vhost=`hostname`
echo "1.Nome da máquina........................................:$vhost"
vdom=`hostname -d`
echo "2.Domínio da máquina.....................................:$vdom"
vtimeon=`uptime`
echo "3.Há quanto tempo esta máquina está ligada?..............:$vtimeon"
vdata=`date`
echo "4.Qual a data do sistema?................................:$vdata"
vdist=`cat /etc/issue`
echo "5.Qual a distribuição linux está instalada?..............:$vdist"
vversion=`uname -v`
echo "6.Qual a versão de kernel?...............................:$vversion"
# lshw
# cat /proc/cpuinfo
vhards=`dmesg | greep -i hda`
echo "7.Qual o hardware foi reconhecido pelo sistema?..........:$vhards"
vip=`/sbin/ifconfig | grep Bcast | cut -c22-34`
echo "8.Qual a configuração de IP?.............................:$vip"
vmasc=`/sbin/ifconfig | grep Bcast | cut -c62-84`
echo "9.Qual a máscara de rede?................................:$vmasc"
vmac=` /sbin/ifconfig | grep HW | cut -d' ' -f13`
echo "10. Qual o endereço físico ?Mac Address?.................:$vmac"
vgate=`/sbin/route | grep default | cut -c17-70`
echo "11. Qual o gateway?......................................:$vgate"
vdns=`cat /etc/resolv.conf | grep nameserver | cut -c12-70`
echo "12. Qual o DNS?..........................................:$vdns"
vprocess=`ps aux`
echo "13. Quantos programas estão carregados na memória?.......:$vprocess"
# lsof pode ser mais bem trabalhado com o uso do comando grep
vopenfile=`lsof`
echo "14. Quais arquivos estão abertos?........................:$vopenfile"
vdaemons=`ps aux | cut -d' ' -f1 | sort -u | grep -v USER`
echo "15. Quais usuários ou daemons estão executando programas ou"
echo "serviços?..............................................:$vdaemons"
vmemo=`cat /proc/meminfo`
echo "16. Quanto de memória existe no sistema?.................:$vmemo"
#/etc/apt/sources.list
echo "17. Quais pacotes estão instalados na máquina?...........:"
vmaqproc=`uname -`
echo "18. Qual o Processador da máquina?.......................:$vmaqproc"
vusb=`lsusb`
echo "19. Existem equipamentos USB nesta máquina?..............:$vusb"
vpci=`lspci`
echo "20. Existem placas PCI nesta máquina?....................:$vpci"
vusrs=`cat /etc/passwd | grep bash | cut -d: -f1`
echo "21. Quantos usuários estão cadastrados?..................:$vusrs"
vuser=`whoami`
echo "22. Quem está logado agora?..............................:$vuser"
vpwd=`pwd`
echo "23. Em qual pasta você está trabalhando?.................:$vpwd"
vspaceuser=`du -kh --max-depth=1 /home 2>/dev/null`
echo "24. Quanto cada usuário está utilizando de espaço no HD?.:$vspaceuser"
#crontab -l (agendados)
echo "25. Agendar para executar estes comandos automaticamente, toda sexta-feira às 10hs."
#crontab -e (editar)




Ainda é possivel criar um SHELLSCRIPT que poderá gerar um arquivo cujo nome será a data do sistema + nome da máquina + ?-resumo.txt? , utilizando as questões acima.

ex: 2011-10-21_lab21_resumo.txt

Nenhum comentário:

Postar um comentário