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 20:01:02 -0300

Ou então, melhor ainda, avise que está na base 10 (decimal)

echo $((10#Dias*Um_Dia))

Abcs,
Julio
*@juliobash
*



Em 9 de julho de 2013 18:50, Luiz Sales <address@hidden> escreveu:

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


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



reply via email to

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