[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