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: Luiz Sales
Subject: Re: [shell-script] Uptime de Serviços
Date: Tue, 9 Jul 2013 16:58:50 -0300

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]



reply via email to

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