shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Status de Utilizacao do Disco


From: Eddy
Subject: Re: [shell-script] Status de Utilizacao do Disco
Date: Thu, 6 Feb 2003 17:53:15 -0300

Tenho um bonitinho aki! vejam só!
echo "================= Uso dos discos do
sistema.=========================== "
/bin/bdf
echo
# vedisco
# Filesystem          kbytes    used   avail %used Mounted on
limite=90
bdf|while read filesys size used avail percused Mounted resto
do
if [ $filesys != Filesystem  ]
then
 used=`echo $used | sed "s/%//"`
 if [ $used -gt $limite ]
 then
  echo "*** $Mounted esta com $percused ocupado!!! ***"
 fi
fi
done


Sem mais,

        Carlos Eduardo Dionizio
     Analista de Suporte - UNIX
Universidade Estácio de Sá - CPD

     === Leia o Salmo 13 ===


----- Original Message -----
From: "Rodolfo Villanova" <address@hidden>
To: <address@hidden>
Sent: Thursday, February 06, 2003 4:36 PM
Subject: RES: [shell-script] Status de Utilizacao do Disco


> Olá camaradas,
>
> Voltei de férias só agora, 30 dias que me afastei de minhas caixas de
> e-mail! Maravilha!
> Por isso só agora vou dar meu pequeno pitaco sobre esse assunto, que me
> tomou um tempo significativo há quase 1 ano atrás, me forçando a estudar
> ainda mais awk e shell.
>
> No início do desafio havia buscado o mesmo caminho do nosso amigo Marco
> Eloy, que era o de utilizar somente o awk e colocar os percentuais de
> ocupação no próprio corpo do script, mas por sugestão do cliente
estruturei
> num arquivo-texto, à parte, os nomes das partições e respectivos limites,
> acima dos quais o script deveria avisar por "net send" (comando nt) e por
> e-mail às caixas-postais e a telefones celulares de plantão.
>
> O script completo funciona sem modificações tanto em ambiente True64
> (servidores Compaq) quanto em SunOS 5.8.
>
> Não vou dar de bandeja todo o script aqui (até porque iria perder a graça
> pra quem gosta de desafios e quer aprofundar seus conhecimento em
> shell-script!), mas informo que elaborei-o de forma que facilitasse a sua
> evolução/depuração passo-a-passo; durante a sua execução, o script
verifica
> se o filesystem superou algum dos limites pré-determinados, e somente
envia
> nova mensagem de aviso quando o percentual atualizado for superior ao
valor
> anterior (senão ele fica torrando a paciência com a mesma mensagem a cada
> intervalo determinado na cron.
>
> Por questão de elegância de programação, defini os nomes de diretórios no
> início do script (por isso aparecem umas variáveis $ARQ_'s no trecho
> abaixo), o que facilita uma eventual mudança de localização dos scripts ou
> dos arquivos com os limites pré-estabelecidos.
>
> 8<----------------------------------------->8
>
> ...
>
> # Monta a situacao atual do File System
> df -k > $ARQ_LOG
>
> # Formata o resultado do comando `df -k`, filtrando os campos 'Mounted on'
e
> 'Capacity'
> awk '{ print $6 ":" $5 }' $ARQ_LOG > $ARQ_DIR
>
> # Verifica se foi ultrapassado algum limite pre-estabelecido
> while read -r LIM_NOME LIM_PERC
> do
> for diretorio in `cat $ARQ_DIR`
> do
> DIR_NOME=`echo $diretorio | cut -f1 -d":"`
> DIR_PERC=`echo $diretorio | cut -f2 -d":" | cut -f1 -d"%"`
> if [ "$DIR_NOME" = "$LIM_NOME" ]; then
> if [ $DIR_PERC -gt $LIM_PERC ]; then
> echo "*** ${DIR_NOME}\t${DIR_PERC}% ***" >> $ARQ_OUT
> fi
> fi
> done
> done < $ARQ_FSL
>
> ...
>
> 8<----------------------------------------->8
>
>
> Espero que sirva de inspiração para novas idéias e desafios para quem está
> iniciando a exercitar programação shell.
>
>
> Grato,
>
> Rodolfo Villanova
> TmS do Brasil
>
>
> -----Mensagem original-----
> De: Julio Cezar Neves - DATAPREVRJ
> [mailto:address@hidden]
> Enviada em: terça-feira, 14 de janeiro de 2003 13:35
> Para: address@hidden
> Assunto: RES: [shell-script] Status de Utilizacao do Disco
>
>
> Se vc fizer:
>
> df -h | while read fs
>
> vc terá cada linha referente a cada file system dentro de $fs para
trabalhar
> a vontade.
>
> [ ]s,
> Julio Cezar Neves
> -Eu Apoio o Software Livre-
> -I Support Free Software-
> * +55 21 2528-7070  /  9853-4044
> *address@hidden
>
>
> > -----Mensagem original-----
> > De: Marco Eloy [mailto:address@hidden]
> > Enviada em: terça-feira, 14 de janeiro de 2003 12:25
> > Para: address@hidden
> > Assunto: RES: [shell-script] Status de Utilizacao do Disco
> >
> >
> > K´ra Nao entendi muito bem o que vc quiz dizer. Na
> > verdade primeiro eu
> > utilizei o "grep+cut" mas sempre tinha que repetir o comando
> > para poder
> > exibir a linha inteira, tipo:
> > /dev/st2 973M 486M 487M 49% /
> > /dev/st3 9.0G 3.0G 6.0G 33% /base
> > pois o cut pega uma unica lista de valores por vez e
> > poe num vetor, o que
> > me impossibilita de pegar duas listas numa unica linha de
> > comando. Assim
> > tenho que executa-lo duas vezes, uma para pegar o % de uso e
> > outra para
> > pegar o nome na particao o que na minha opiniao é retrabalho,
> > por isso optei
> > pelo awk. Entretanto vc me passou duas informacoes que eu
> > desconhecia:1ª awk
> > nao aceita variaveis shell e 2ª que ele aceita se a variavel
> > for passada
> > como parametro. Tentei passar a variavel como parametro sem
> > sucesso. Como eu
> > posso passar a variavel como parametro?
> > Em novas tentativas com a dupla grep/cut parei no mesmo
> > ponto; execucao
> > dupla do mesmo comando. Vc tb acha que soh da pra fazer
> > usando grep/cut 2
> > vezes? como ficaria na usa opiniao?
> >
> > Sds
> > Marco Eloy
>
>
> ---------------------------------------------------------------------
> Esta lista não admite a abordagem de outras liguagens de programação, como
> perl, C etc. Quem insistir em não seguir esta regra será moderado sem
prévio
> aviso.
> ---------------------------------------------------------------------
> Sair da lista: address@hidden
> ---------------------------------------------------------------------
> Esta lista é moderada de acordo com o previsto em
> http://www.listasdiscussao.cjb.net
> ---------------------------------------------------------------------
>
>
> Seu uso do Yahoo! Grupos é sujeito às regras descritas em:
> http://br.yahoo.com/info/utos.html
>
>
>
>
>
> ---------------------------------------------------------------------
> Esta lista não admite a abordagem de outras liguagens de programação, como
perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio
aviso.
> ---------------------------------------------------------------------
> Sair da lista: address@hidden
> ---------------------------------------------------------------------
> Esta lista é moderada de acordo com o previsto em
http://www.listasdiscussao.cjb.net
> ---------------------------------------------------------------------
>
>
> Seu uso do Yahoo! Grupos é sujeito às regras descritas em:
http://br.yahoo.com/info/utos.html
>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]