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: Marcelo Neto
Subject: Re: [shell-script] Uptime de Serviços
Date: Tue, 9 Jul 2013 16:20:02 -0300

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


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



reply via email to

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