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 16:14:17 -0300

Luiz, veja se essas sugestões melhoram:

um_dia="86400"
uma_hora="3600"
um_minuto="60"

processo=$(ps h -C $1 | head -n1 | awk '{print $1}') || {
    echo "Processo nao encontrado!"
    exit 1
}

Reg=$(ps -eo pid,etime | grep $processo)
# Se não houver dias, colocarei 0-
grep -F '-' <<< "$Reg" || Reg=$(sed -r "s/$processo +/$processo 0-/" <<<
"$Reg")
# Se não tiver Hora, completa
grep -E '0-([0-9]{2}:){2}[0-9]{2}' <<< $Reg || Reg=$(sed 's/0-/0-00:/' <<<
$Reg)

IFS=' -:' read Lixo Dias Hors Mins Secs <<< "$Reg"

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

Abcs,
Julio
*@juliobash
*



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


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



reply via email to

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