ADMachine

Publicado por octavio (última atualização em 20/06/2011)

[ Hits: 5.936 ]

Download ADMachine.0.03




E ae pessoal do VOL???

Eu sei que ate agora não contribui com nada aqui no VOl... mas vou começar a mandar algumas dicas e se der alguns artigos.  Neste mês consegui atingir um dos objetivos que eu planejei para esse ano... e agora estou em busca da LPI (hehehe).

Em um belo dia, que não tinha nada para fazer, comecei a desenvolver um scriptizinho... ate que ele ficou legal!!!
Eu o fiz usando o sistema Debian 6.0  e o batizei de ADMachine , como o nome já diz ele é um auxiliar do administrador da maquina. Ainda falta muitas funcionalidades, mas já é um começo.

Pessoal, comentem e mandem suas criticas.

Obs .: Para quem quiser mudar as cores, veja um dica em: http://www.vivaolinux.com.br/dica/Shell-script-com-texto-colorido

  



Esconder código-fonte

#!/bin/bash
# ShellScript criado por Octavio Bottoni Neto
# Script para Administração da maquina.

ADMhelp(){
echo -e "
{FONTE}33[1;33mADM ajuda{FONTE}33[0m

{FONTE}33[1;33mOPÇÕES{FONTE}33[0m
\t-m \t\t{FONTE}33[1;33mInformações da memoria{FONTE}33[0m
\t-u \t\t{FONTE}33[1;33mInformações de usuarios{FONTE}33[0m
\t-p \t\t{FONTE}33[1;33mInformações do processador{FONTE}33[0m
\t-b \t\t{FONTE}33[1;33mInformações basicas{FONTE}33[0m
\t-n \t\t{FONTE}33[1;33mInformações de rede{FONTE}33[0m"
}
######################################################
#Funçao que mostra informaçoes de memoria
ADMmeminfo(){
clear
#Aqui é usado o comando "free -m" e ele é filtrado e modificado para melhor entendimento
echo -e "
$(date)


{FONTE}33[1;33mMemoria em Megabytes{FONTE}33[0m
$(free -m | head -2 | sed "s/Mem:/    /" | sed "s/used/Usado/"| sed "s/free/Livre/" | awk '{print $1" "$2" "$3}') 


{FONTE}33[1;33mPROCESSOS QUE OCUPAM MAIS MEMORIA NO NO SISTEMA:{FONTE}33[0m
$(ps aux | awk '{print $1" "$2"     "$4"    "$7"     "$10"      "$11}' | sed "s/\ /\t/" | expand -t 20 | grep -v 0.0)
" # Na linha cima usamos o comando "ps aux" e  filtramos ele, para pegar apenas os processos que ocupam mais memoria

}
########################################################
########################################################

#Funçao que mostra informaçoes do processador
# O LOOP FOR ABAIXO FICOU MEIO CONFUSO MAS PRESTANDO BEM ATENCAO DA PRAVER O QUE ELE VAI FAZER.
#
ADMcpuinfo(){
clear
VAR1=$(cat /proc/cpuinfo | grep -i "processor" | wc -l)
 echo -e " 
$(date)


{FONTE}33[1;33mQUANTIDADE DE PROCESSADORES LOGICOS:{FONTE}33[0m $VAR1
"

for i in $(seq 0 $( expr $VAR1 - 1 ));
 do echo -e " {FONTE}33[1;33mPROCESSADOR :{FONTE}33[0m$i $(cat /proc/cpuinfo | grep -i -A 6 "processor   : $i" | grep -i "^model name" | sed "s/   //" | sed "s/model name/    Modelo/" ) $(cat /proc/cpuinfo | grep -i -A 25 "processor   : $i" | grep -i "^clflush size"  | sed "s/clflush size/     Suporta/"| sed "s/$/ Bits /"  )" ; done 

echo -e "
{FONTE}33[1;33mPROCESSOS MAIS PESSADOS:{FONTE}33[0m
$(ps aux | awk '{print $1" "$2"     "$3"    "$7"     "$10"      "$11}' | sed "s/\ /\t/" | expand -t 20 | grep -v 0.0)
" 
}

########################################################
########################################################

# essa funcao verifica se a, algum usuario logado no sistema, e tambem mostras usuarios normais(criados apos o final da instalacao do sistema) e usuarios que nao possuem home(menos o root)
ADMusers(){
clear
echo -e "$(date )

{FONTE}33[1;33mEXISTE USUARIO LOGADO NA INTERFACE GRAFICA:{FONTE}33[0m `if w | egrep -i "tty7|gnome-session|kde|afterstep|enlightnment|windowmaker|icew|blackbox|fvwm90|fluxbox" > /dev/null 2> /dev/null  ; then echo "Sim, usuario $(w | egrep -i "tty7|gnome-session"  | awk '{print $1}')"; else echo "NÃO"; fi `

{FONTE}33[1;33mUSUARIOS NORMAIS (UID >= 1000):{FONTE}33[0m
`cat /etc/passwd | egrep "x:[0-9]{4}:[0-9]{4}:" | cut -d: -f1`

{FONTE}33[1;33mUSUARIOS QUE NAO POSSUEM HOME:{FONTE}33[0m
`cat /etc/passwd | egrep -v "/home/|root" | cut -d: -f1 `
"

} 
##########################################################################
ADMnetwork(){
clear
echo -e " \t\t\t{FONTE}33[1;33mINFORMACOES DE REDE{FONTE}33[0m"
echo -e "{FONTE}33[1;33mquantidade de placas de rede:{FONTE}33[0m `lspci | egrep -i "ether|wireless" | wc -l`"
echo -e "{FONTE}33[1;33mprocurando link de dados{FONTE}33[0m" && sleep 0.7
LINKDATA=`mii-tool | grep -v "no link" | wc -l`

if [ $LINKDATA -ge 1 ] ;   then 
   echo  -e "{FONTE}33[1;33mexiste link de dados.{FONTE}33[0m"
   echo -e  "{FONTE}33[1;33mvc deseja pegar um ip via DHCP??(y/n){FONTE}33[0m"
   read OPC_DHCP
   test $OPC_DHCP = "y" && echo -e "{FONTE}33[1;33mbuscando ip{FONTE}33[0m " && dhclient -v $(mii-tool | grep -v "no link" | cut -d: -f1)
  else 
echo -e "{FONTE}33[1;33mnao a link{FONTE}33[0m"
fi

}
ADMbasicInformation(){
clear
date 
echo -e "
{FONTE}33[1;33mKERNEL:{FONTE}33[0m `uname -r`

{FONTE}33[1;33mGERENCIADOR(ES) DE PACOTES:{FONTE}33[0m
   `dpkg -l > /dev/null 2> /dev/null && echo "dpkg"`
   `rpm -qa > /dev/null 2> /dev/null && echo "rpm"`

{FONTE}33[1;33mHOSTNAME:{FONTE}33[0m `cat /etc/hostname`

{FONTE}33[1;33mROTA PADRAO:{FONTE}33[0m
   `route -n`

{FONTE}33[1;33mQUANT. DE USUARIOS:{FONTE}33[0m `cat /etc/passwd | wc -l`

{FONTE}33[1;33mQUANT. DE GRUPOS:{FONTE}33[0m `cat /etc/group | wc -l`

{FONTE}33[1;33mDNS PADRAO(OES):{FONTE}33[0m

`cat /etc/resolv.conf | sed "s/nameserver/servidor DNS: /"`

"

}

ADMmenu(){
echo menu
}

case $1 in
   -h)
      ADMhelp
    ;;
   -m)
       ADMmeminfo   
    ;;
   -p)
      ADMcpuinfo
   ;;
   -u)
      ADMusers
   ;;
   
   -n)   
      ADMnetwork
   ;;
   -b)
      ADMbasicInformation
   ;;

   --menu)   
      ADMmenu
   ;;

   --shell)
      /bin/bash
   ;;

   "")
    clear &&  echo -e "
\t+---------------------------------------------------+
\t|Script de Administraçao da maquina.                |
\t|                                                   |
\t|                                                   |
\t|                                                   |
\t|                                                   |
\t|        PARA AJUDA DIGITE: ADMachine -h            |
\t|                                                   |
\t|                                                   |
\t|                                                   |
\t+---------------------------------------------------+"
 
   ;;

   *)
    echo -e "
\t+---------------------------------------------------+
\t|                                                   |
\t|              OPÇÃO $1 INDISPONIVEL                |
\t|              DIGITE: ADMachine -h                 |
\t|                                                   |
\t+---------------------------------------------------+
"   
;;

esac

Scripts recomendados

Restaurar backup de uma conta cpanel mesmo que ela já exista

Monitoração do CBQ

Biblioteca de funções de manipulação de arquivos CSV para shell script

Shell Script / Perl para sincronizar base de usuários do AD com o Zimbra

Script de Instalação de Layer7 no CentOS 6.0


  

Comentários
[1] Comentário enviado por ricardoolonca em 20/06/2011 - 14:57h

O OpenAudit é um sistema que permite fazer o inventário da máquina. Ele possui um script bash deve ser executado na máquina alvo. Dê uma olhada nesse script. Ele pode melhorar ainda mais o ADMachine.

http://www.open-audit.org/

[2] Comentário enviado por octaviob11 em 21/06/2011 - 15:42h

Opa...
Acho que na hora de colar o script na pagina ele mudou (NAO SEI O PORQUE) todos os "{COMENTARIO}" para "{FONTE}"
Exemplo:
ANTES:
echo -e "
{COMENTARIO}33[1;33mADM ajuda{COMENTARIO}33[0m

DEPOIS
echo -e "
{FONTE}33[1;33mADM ajuda{FONTE}33[0m

[3] Comentário enviado por octaviob11 em 21/06/2011 - 15:43h

OI...

valeu pela dica... vou dar uma olhada no OpenAudit.
brigado.


Contribuir com comentário