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 17:52:37 -0300

Li o seu codigo, porem quando copiei e colei, eu percebi que o mesmo
adicionou o 0- antes dos serviços que nao tem dias e deixou os serviços com
dias intactos, porem nao consegui assimilar como colocaria no meu codigo..

copiando e colando continuam os mesmos erros..

[root@D01LS150V ~]# ./prc.sh smbd
648 0-01:24:52
./prc.sh: line 19: *86400: syntax error: operand expected (error token is
"*86400")
Dia:
./prc.sh: line 21: *3600: syntax error: operand expected (error token is
"*3600")
Hora:
./prc.sh: line 23: *60: syntax error: operand expected (error token is
"*60")
Minuto:
Uptime smbd em segundos: 1
2
[root@D01LS150V ~]# ./prc.sh sshd
 1487 36-07:13:07
./prc.sh: line 19: *86400: syntax error: operand expected (error token is
"*86400")
Dia:
./prc.sh: line 21: *3600: syntax error: operand expected (error token is
"*3600")
Hora:
./prc.sh: line 23: *60: syntax error: operand expected (error token is
"*60")
Minuto:
Uptime sshd em segundos: 1
2



2013/7/9 Julio C. Neves <address@hidden>

> 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]
>
>
>
> ------------------------------------
>
> ---------------------------------------------------------------------
> 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]