ADMachine
Publicado por octavio (última atualização em 20/06/2011)
[ Hits: 5.855 ]
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
#!/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
Baixar pdf do "slide share" sem login usando shell script
Monitorando processo do Squid em diferentes redes
linkswitch (redundância de internet)
Copia arquivos distribuidos em pastas diferentes para uma única pasta.
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
fusermount3 no Ubuntu 25.10 - mantenha o perfil do AppArmor
[Resolvido] dlopen(): error loading libfuse.so.2 AppImages require FUSE to run.
Criação de diretórios e aplicação de restrições de acesso no Linux
Aderencia a Obsolencia Programada. (18)
Debian Stable travado em atualizações: dist-upgrade não resolve [RESOL... (9)
Como você configura seu GNOME? Eu faço assim... (5)









