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 18:50:10 -0300

Por enquanto corrigidos assim:

# Bug do Octal

#Dia=`echo $Dias | sed 's/^0*//'`
Hora=`echo $Horas | sed 's/^0*//'`
Min=`echo $Mins | sed 's/^0*//'`



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

> Surgiram alguns erros.. com relação as horas, minutos..
>
> [root@D01LS150V ~]# /home/zabbix/procupdate.sh nmbd
> + um_dia=86400
> + uma_hora=3600
> + um_minuto=60
> ++ ps h -C nmbd
> ++ head -n1
> ++ awk '{print $1}'
> + processo=1980
> ++ ps -eo pid,etime
> ++ grep 1980
> + Reg=' 1980 32-00:40:19'
> + grep -F -
>  1980 32-00:40:19
> + grep -E '0-([0-9]{2}:){2}[0-9]{2}'
> ++ sed s/0-/0-00:/
> + Reg='1980 32-00:40:19'
> + IFS=' -:'
> + read Lixo Dias Horas Mins Secs
> ++ echo 2764800
> + dia_s=2764800
> + echo 'Dia: 2764800'
> Dia: 2764800
> ++ echo 0
> + hora_s=0
> + echo 'Hora: 0'
> Hora: 0
> ++ echo 2400
> + min_s=2400
> + echo 'Minuto: 2400'
> Minuto: 2400
> + echo 2767219
> 2767219
> [root@D01LS150V ~]# /home/zabbix/procupdate.sh smbd
> + um_dia=86400
> + uma_hora=3600
> + um_minuto=60
> ++ ps h -C smbd
> ++ head -n1
> ++ awk '{print $1}'
> + processo=6139
> ++ ps -eo pid,etime
> ++ grep 6139
> + Reg=' 6139    08:18:50'
> + grep -F -
> ++ sed -r 's/6139 +/6139 0-/'
> + Reg=' 6139 0-08:18:50'
> + grep -E '0-([0-9]{2}:){2}[0-9]{2}'
> 6139 0-08:18:50
> + IFS=' -:'
> + read Lixo Dias Horas Mins Secs
> ++ echo 0
> + dia_s=0
> + echo 'Dia: 0'
> Dia: 0
> /home/zabbix/procupdate.sh: line 22: 08: value too great for base (error
> token is "08")
> + hora_s=
> + echo 'Hora: '
> Hora:
> ++ echo 1080
> + min_s=1080
> + echo 'Minuto: 1080'
> Minuto: 1080
> /home/zabbix/procupdate.sh: line 28: 0++min_s+50: syntax error in
> expression (error token is "++min_s+50")
> [root@D01LS150V ~]# /home/zabbix/procupdate.sh slapd
> + um_dia=86400
> + uma_hora=3600
> + um_minuto=60
> ++ ps h -C slapd
> ++ awk '{print $1}'
> ++ head -n1
> + processo=4685
> ++ ps -eo pid,etime
> ++ grep 4685
> + Reg=' 4685 34-02:09:42'
> + grep -F -
>  4685 34-02:09:42
> + grep -E '0-([0-9]{2}:){2}[0-9]{2}'
> ++ sed s/0-/0-00:/
> + Reg='4685 34-02:09:42'
> + IFS=' -:'
> + read Lixo Dias Horas Mins Secs
> ++ echo 2937600
> + dia_s=2937600
> + echo 'Dia: 2937600'
> Dia: 2937600
> ++ echo 7200
> + hora_s=7200
> + echo 'Hora: 7200'
> Hora: 7200
> /home/zabbix/procupdate.sh: line 24: 09: value too great for base (error
> token is "09")
> + min_s=
> + echo 'Minuto: '
> Minuto:
> + echo 2944842
> 2944842
> [root@D01LS150V ~]#
>
>  Pode ser algo com o sed la de cima...
>
>
>
>
> 2013/7/9 Luiz Sales <address@hidden>
>
>> 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
>>
>
>
>
> --
> 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]