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:59:03 -0300

Erro meu... variaveis nao condiziam... desculpe.


2013/7/9 Luiz Sales <address@hidden>

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



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