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

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

Re: [shell-script] Uptime de Serviços


From: Julio C. Neves
Subject: Re: [shell-script] Uptime de Serviços
Date: Tue, 9 Jul 2013 17:26:01 -0300

Luiz, favor ser mais explicito. O que "não fechou" significa. Escrevi umas
30 linhas para te ajudar e vc me responde em 1/2 linha!

Abcs,
Julio
*@juliobash
*



Em 9 de julho de 2013 16:58, Luiz Sales <address@hidden> escreveu:

> **
>
>
> Julio,
> Nao consegui entender seu raciocinio, e quando no shell, alguma linha nao
> fechou :P
>
> Marcelo,
> Pelo que vi, com esse codigo eu perco os meus dias.. se eles existirem..
>
> deixei da seguinte maneira..
>
> day=$(ps -eo pid,time | sed -r 's/ (([0-9]{2}:){2}[0-9]{2})/ 0-\1/g' |
> grep $processo | awk -F " " '{print $2}' | awk -F "-" '{print $1}')
> echo "Dias: $day"
>
> [root@D01LS150V ~]# ./procupdate.sh sshd
> Dias: 0
> Dia: 0
> Hora: 21600
> Minuto: 960
> Uptime sshd em segundos: 22562
> 22562
> [root@D01LS150V ~]# ./procupdate.sh slapd
> Dias: 0
> Dia: 0
> Hora: 0
> Minuto: 2460
> Uptime slapd em segundos: 2519
> 2519
>
> e sem o seu codigo..
>
> [root@D01LS150V ~]# ./procupdate.sh sshd
> Dias: 36
> Dia: 3110400
> Hora: 21600
> Minuto: 1020
> Uptime sshd em segundos: 3133072
> 3133072
> [root@D01LS150V ~]# ./procupdate.sh slapd
> Dias: 34
> Dia: 2937600
> Hora: 0
> Minuto: 2580
> Uptime slapd em segundos: 2940228
> 2940228
>
> alterando um pouco o script..
>
> # Pega a quantos dias o processo ta rodando.
> day=$(ps -eo pid,etime | grep $processo | awk -F " " '{print $2}' |
> awk -F "-" '{print $1}')
> echo "Dias: $day"
> if [ -z $day ];
> then
> day=$(ps -eo pid,time | sed -r 's/
> (([0-9]{2}:){2}[0-9]{2})/ 0-\1/g' | grep $processo | awk -F " " '{print
> $2}' | awk -F "-" '{print $1}')
> echo "Dias: $day"
> fi
>
> [root@D01LS150V ~]# ./procupdate.sh sshd
> Dias: 36
> Dia: 3110400
> Hora: 21600
> Minuto: 1260
> Uptime sshd em segundos: 3133316
> 3133316
> [root@D01LS150V ~]# ./procupdate.sh smbd
> Dias: 33:47
> ./procupdate.sh: line 32: 33:47*86400: syntax error in expression (error
> token is ":47*86400")
> Dia:
> ./procupdate.sh: line 34: *3600: syntax error: operand expected (error
> token is "*3600")
> Hora:
> ./procupdate.sh: line 36: *60: syntax error: operand expected (error token
> is "*60")
> Minuto:
> Uptime smbd em segundos: 1
> 2
> [root@D01LS150V ~]#
>
> o smbd nao tem dias.. e o sshd tem..
>
> 2013/7/9 Marcelo Neto <address@hidden>
>
> > Melhorando o comando mais um pouquinho:
> >
> > *ps -eo pid,time | sed -r 's/ (([0-9]{2}:){2}[0-9]{2})/ 0-\1/g'*
> >
> >
> >
> > Em 9 de julho de 2013 16:20, Marcelo Neto <address@hidden>
> > escreveu:
> >
> > > Seguinte,
> > >
> > > quando você executa somente "ps -eo pid,time" aparece o seguinte:
> > >
> > > 23574 1-14:09:54
> > > 23650 00:00:02
> > >
> > > eu aconselharia adicionar "0-" antes das horas que não possuem dias
> > > executando o comando com um sed:
> > >
> > > *ps -eo pid,time | sed -r 's/ ([0-9][0-9]:[0-9][0-9]:[0-9][0-9])/
> 0-\1/g
> > > *
> > > *
> > > *
> > > *23574 1-14:09:54*
> > > *23650 0-00:00:02*
> > >
> > > com isso você padronizaria.
> > >
> > >
> > > Em 9 de julho de 2013 15:18, Luiz Sales <address@hidden> escreveu:
> > >
> > >> **
> > >>
> > >>
> > >> Amigos,
> > >>
> > >> Estou trabalhando em uma soluçao para descobrir o uptime dos
> serviços...
> > >> eu estou buscando o resultado em segundos.
> > >>
> > >> Segue o script que "estou" desenvolvendo..
> > >>
> > >> #!/bin/sh -x
> > >> um_dia="86400"
> > >> uma_hora="3600"
> > >> um_minuto="60"
> > >>
> > >> processo=$(ps h -C $1 | head -n1 | awk '{print $1}')
> > >> if [ -z $processo ];
> > >> then
> > >> echo "Processo nao encontrado!"
> > >> exit 1
> > >> else
> > >> # Pega a quantos dias o processo ta rodando.
> > >> day=$(ps -eo pid,etime | grep $processo | awk -F " " '{print $2}' |
> > >> awk -F "-" '{print $1}')
> > >> echo $day
> > >> if [ -z $day ];
> > >> then
> > >>
> > >> day="0"
> > >> fi
> > >>
> > >> # Calcular passado
> > >> # Hora
> > >> hour=$(ps -eo pid,etime | grep $processo | awk -F " " '{print $2}'
> > >> | awk -F "-" '{print $2}' | awk -F ":" '{print $1}')
> > >> echo $hour
> > >> minute=$(ps -eo pid,etime | grep $processo | awk -F " " '{print
> > >> $2}' | awk -F "-" '{print $2}' | awk -F ":" '{print $2}')
> > >> echo $minute
> > >> seconds=$(ps -eo pid,etime | grep $processo | awk -F " " '{print
> > >> $2}' | awk -F "-" '{print $2}' | awk -F ":" '{print $3}')
> > >> echo $seconds
> > >>
> > >> dia_s=`echo $(($day*$um_dia))`
> > >> echo "Dia: $dia_s"
> > >> hora_s=`echo $(($hour*$uma_hora))`
> > >> echo "Hora: $hora_s"
> > >> min_s=`echo $(($minute*$um_minuto))`
> > >> echo "Minuto: $min_s"
> > >>
> > >> echo "Uptime $1 em segundos: $(($dia_s+$hora_s+min_s+seconds))"
> > >> echo $(($dia_s+$hora_s+min_s+seconds))
> > >>
> > >> fi
> > >>
> > >> com o comando
> > >> ps h -C <nome do serviço> eu consigo pegar o pid e com o comando
> > >> ps -eo pid,time eu pego o tempo de execução, mas alguns serviços nao
> tem
> > >> dias(no ar) e eu acabo pegando outra variavel, acho que devido a
> posição
> > >> de
> > >> cada atributo.. teria como delimitar o para o time ser sermpre em uma
> > >> coluna.. ou algo quen houvesse um padrao..
> > >>
> > >> se o serviço tiver dia hora minuto segundo funciona corretamente, mas
> se
> > >> nao tiver dia, ele ja da erro no shell e eu perco as informações
> > >>
> > >> --
> > >> Luiz Sales
> > >> aka redhate
> > >> Certified Zimbra, LPIC-2 e ITIL v2
> > >> Linux User #347508
> > >> aMSN: address@hidden
> > >> Licq: 251384040
> > >>
> > >> [As partes desta mensagem que não continham texto foram removidas]
> > >>
> > >>
> > >>
> > >
> > >
> > >
> > > --
> > > Marcelo Neto
> > > (85) 8886.5730
> > > Fortaleza - Brasil
> > >
> >
> >
> >
> > --
> > Marcelo Neto
> > (85) 8886.5730
> > Fortaleza - Brasil
> >
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
> >
> >
> > ------------------------------------
> >
> > ----------------------------------------------------------
> > 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.listas-discussao.cjb.net
> > ----------------------------------------------------------
> > Servidor Newsgroup da lista: news.gmane.org
> > Grupo: gmane.org.user-groups.programming.shell.brazil
> >
> > Links do Yahoo! Grupos
> >
> >
> >
>
> --
> Luiz Sales
> aka redhate
> Certified Zimbra, LPIC-2 e ITIL v2
> Linux User #347508
> aMSN: address@hidden
> Licq: 251384040
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

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