shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RES: [shell-script] coleta de logs


From: Julio Cezar Neves - DATAPREVRJ
Subject: RES: [shell-script] coleta de logs
Date: Fri, 29 Oct 2004 09:45:46 -0300

Vou te mandar um script que fiz que converte tudo em dias a partir de
01/01/1980. Para converter em segundos vc terá que multiplicar o resultado
por 24 e somar com a hora, multiplicar este resultado por 60 e somar com os
minutos e novamente mutiplicar por 60 e somar com os segundos.

Prompt> cat data2num.sh
#!/bin/ksh
#
#======================================================================
# Calcula qtd dias entre uma data passada como parametro e 01/01/1980.
# Se nao for passado nenhum parametro a data de hoje sera assumida.
# Obs. Para executar este programa sob o sh, trocar os $((..)) por expr
#======================================================================
# Leia: Linux - Programacao Shell  ISBN: 85-7452-048-9
# Autor: Julio Cezar Neves <mailto:address@hidden>
#======================================================================
#
if  [ $1 ]
then
        DFim=`echo $1 | cut -f1 -d"/"`
        MFim=`echo $1 | cut -f2 -d"/"`
        AFim=`echo $1 | cut -f3 -d"/"`
else
        DFim=`date +%d`
        MFim=`date +%m`
        AFim=`date +%Y`
fi

TotDias=$((1 + 365 * (AFim - 1980) + (AFim - 1980) / 4))
[ $((AFim % 4)) = 0 -a $MFim -le 2 ] && TotDias=$((TotDias - 1))

[ $MFim -ne 1 ] &&
for i in `echo "31 28 31 30 31 30 31 31 30 31 30 31" | cut -f-$((MFim - 1))
-d" " 2> /dev/null`
do
        TotDias=$((TotDias + $i))
done
echo $((TotDias + DFim))


Prompt> cat num2data.sh
#!/bin/ksh
#
#==========================================================
# Recebe uma qtd de dias como parametro, e o transforma em
# uma data, que significa 1/1/1980 + parametro recebido.
# Obs. Para executar este programa sob o sh, trocar por
# $((..)) por expr
#==========================================================
# Leia: Linux - Programacao Shell  ISBN: 85-7452-048-9
# Autor: Julio Cezar Neves <mailto:address@hidden>
#==========================================================
#
Num=$(($1 - 1))
AFim=$((1980 + (Num / 365)))
DFim=$((Num % 365 - Num / 1460))
[ $((AFim % 4)) -eq 0 ] && DFim=$((DFim + 1))
MFim=1
for i in 31 `[ $((AFim % 4)) -eq 0 ] && echo 29 || echo 28` 31 30 31 30 31
31 30 31 30 31
do
        [ $DFim -le $i ] && break
        DFim=$((DFim - i))
        MFim=$((MFim + 1))
done
[ $DFim -eq 0 ] && DFim=$i
[ $DFim -le 9 ] && echo "0$DFim/\c" || echo "$DFim/\c"
[ $MFim -le 9 ] && echo "0$MFim/\c" || echo "$MFim/\c"
echo $AFim

[ ]s,
Julio Cezar Neves
- Gerente do Programa de Software Livre -
Tel:+55 21 2528-7070 / +55 21 8112-9988
Fax: +55 21 2528-7646
mailto:address@hidden


| -----Mensagem original-----
| De: Marcos Arouca [mailto:address@hidden]
| Enviada em: quinta-feira, 28 de outubro de 2004 21:39
| Para: address@hidden
| Assunto: RES: [shell-script] coleta de logs
| Prioridade: Alta
| 
| 
| 
| Você entendeu perfeitamente.
| Acredito que descobrir essa data zero seja fácil.
| Partindo desse pré-suposto, como seria feito o script ?
|  
| []s
| 
|   _____  
| 
| De: Julio Cezar Neves - DATAPREVRJ 
| [mailto:address@hidden] 
| Enviada em: quinta-feira, 28 de outubro de 2004 20:12
| Para: address@hidden
| Assunto: RES: [shell-script] coleta de logs
| 
| 
| Marcos,
| este timestamp deve ter uma data zero, ou seja, deve ser a 
| qtd de segundos
| decorridos a partir de 00:00 desta data. Sem saber que data é 
| esta, acho
| muito difícil fazer a conversão que vc solicita. Ou então não 
| entendi nada
| do que vc escreveu, e neste caso eu peço desculpas e não precisa nem
| responder.
| 
| [ ]s,
| Julio Cezar Neves
| - Programa de Software Livre -
| Tel:+55 21 2528-7070 / +55 21 8112-9988
| Fax: +55 21 2528-7646
| mailto:address@hidden
| 
| 
| | -----Mensagem original-----
| | De: Marcos Paulo Arouca Pereira [mailto:address@hidden]
| | Enviada em: quinta-feira, 28 de outubro de 2004 17:45
| | Para: address@hidden
| | Assunto: [shell-script] coleta de logs
| | 
| | 
| | 
| | 
| | Pessoal,
| |  
| | Preciso coletar e armazenar logs em txt, de uma página em PHP 
| | montando para isso um script.
| | Basicamente eu preciso:
| | Entrar na página, trabalhar o log e arquivar em TXT.
| |  
| | O arquivo está no formato:
| | 1098815700 38 0 38 0 
| | 1098816000 41 0 41 0 
| | 1098816300 42 0 42 0 
| | 1098816600 40 0 40 0 
| | 1098816900 36 0 36 0 
| | 1098817200 35 0 35 0 
| | 1098817500 31 0 31 0 
| | 
| | Aonde o primeiro lote é TIMESTAMP (teria que transformar para 
| | Data/Hora) e o segundo lote é igual ao último, só preciso 
| coletar um 
| | deles, que é o valor máximo.
| | Nesse caso no TXT ficaria armazenado assim, por exemplo:
| |  
| | 2004-10-28 08:00:00;29
| | 2004-10-28 08:05:00;35...
| |  
| | Alguma idéia?
| |  
| | []s
| | 
| | 
| | 
| | 
| | 
| | 
| ---------------------------------------------------------------------
| | 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
| ---------------------------------------------------------------------
| 
| Links do Yahoo! Grupos
| 
| 
| 
| 
| 
| 
| 
| 
| 
| ---------------------------------------------------------------------
| 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
| ---------------------------------------------------------------------
| 
| 
| 
| 
| Yahoo! Grupos, um serviço oferecido por:      
| 
|       
|   
| <http://br.i1.yimg.com/br.yimg.com/i/br/ads4/2309_lrec_yshopping2.gif>
| 
| 
|  
|  
| <http://br.rd.yahoo.com/SIG=12ass93n5/M=264105.3931087.6562589
| .1588051/D=brc
| lubs/S=2137111254:HM/EXP=1099091536/A=2361264/R=6/SIG=10v4acpp
| 0/*http://br.s
| hopping.yahoo.com/>           
| 
|   _____  
| 
| Links do Yahoo! Grupos
| 
| 
| *     Para visitar o site do seu grupo na web, acesse:
| http://br.groups.yahoo.com/group/shell-script/
|   
| 
| *     Para sair deste grupo, envie um e-mail para:
| address@hidden
| <mailto:address@hidden?subject=Un
subscribe> 
  

*       O uso que você faz do Yahoo! Grupos está sujeito aos Termos do
Serviço do Yahoo! <http://br.yahoo.com/info/utos.html> . 




  _____  

avast! Antivirus <http://www.avast.com> : Outbound message clean. 


Virus Database (VPS): 0444-1, 27/10/2004
Tested on: 28/10/2004 21:39:00
avast! - copyright (c) 2000-2004 ALWIL Software.




[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
---------------------------------------------------------------------
 
Links do Yahoo! Grupos




 




reply via email to

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