![]() |
Olá e boas-vindas de Estados Unidos para o UNIX e Linux Forum! Obrigado por visitar e fazer parte da nossa comunidade global.
|
|
google unix.com
|
|||||||
| Fóruns | Registar | Fórum Regimento | Ligações | Álbuns | FAQ | Lista deputados | Calendário | Pesquisa | Today's Posts | Mark Forums Read |
| Programação Shell Script e Post perguntas sobre ksh, CSH, SH, BASH, Perl, PHP, SED, Awk e outros scripts shell e shell scripts línguas aqui. |
Mais UNIX e Linux Fórum Tópicos Você pode achar Helpfull
|
||||
| Fio | Thread Starter | Fórum | Respostas | Última postagem |
| extrair dados a partir de datas | Krrishv | Programação Shell Script e | 5 | 06-05-2009 12:33 |
| Precisa de script para gerar todas as datas no formato DDMMAA entre 2 datas | frozensmilz | Programação Shell Script e | 2 | 01-29-2009 06:06 |
| Tempo entre as datas | Sreejith_VK | HP-UX | 2 | 02-27-2008 02:02 |
| UNIX Datas | ndoggy020 | UNIX para Dummies Perguntas & Respostas | 9 | 02-14-2008 06:25 |
| comparar 2 datas | k_oops9 | Programação Shell Script e | 7 | 11-15-2004 02:07 |
![]() |
|
|
Linkback | Thread Tools | Pesquisar este Thread | Rate Thread | Display Modes |
|
|
|
||||
|
Extrato loglines entre duas datas
Oi tudo,
este é meu primeiro post, e eu quero dizer Olá a todos lá dentro. Eu tenho um pequeno problema para todos vocês .Tenho um diário como este: Código:
38714 07/02/09 00:01:36 nsrd web2consolidato:D:\ done saving to pool 'SISTMSW0060' (Q09480) 32 GB 38752 07/02/09 00:01:37 nsrd /dev/rmt/STK0.2.10.5 11:Verify label operation in progress 38752 07/02/09 00:01:39 nsrd /dev/rmt/STK0.2.10.5 11:Mount operation in progress 42504 07/02/09 00:01:48 nsrd media event cleared: Waiting for 1 writable volumes to backup pool 'index' tape(s) or disk(s) on bolgt03 38718 07/02/09 00:01:48 nsrd bolgt03:index:serceias6bo009 saving to pool 'index' (Q12581) 38718 07/02/09 00:01:48 nsrd bolgt03:index:efbpmb04 saving to pool 'index' (Q12581) 38718 07/02/09 00:01:48 nsrd bolgt03:index:bostn03qd saving to pool 'index' (Q12581) 38718 07/02/09 00:01:48 nsrd bolgt03:index:efbpme06 saving to pool 'index' (Q12581) 0 07/02/09 00:01:51 nsrmmdbd pools supported: index, SISTMSW0060; 12361 07/02/09 00:01:52 nsrd [Jukebox `CRMF01', operation # 1967]. Finished with status: succeeded 42506 07/02/09 00:01:58 nsrd write completion notice: Writing to volume Q32308 complete 42506 07/02/09 00:02:08 nsrd write completion notice: Writing to volume Q09480 complete 9935 07/02/09 00:02:10 nsrmmdbd Save set ssid:3343637708 cloneid:1246485675 retention time update is before browse time, adju sting browse time Exemplo Eu executar o script em 15:31 - 07/01/09 Eu preciso de cada linha criada entre as 14:31 - 07/01/09 e agora. Mas não é certo que existe uma linha no log com a hora. O registo pode ser inalterada na última semana ou pode conter várias linhas com a mesma hora. O script também precisam de correr entre os dias mounth e mudanças exemplo: executado em 00:30 07/01/09 eu preciso de cada linha de 23:30 um 06/30/09 .Por favor, ajudem-me ... minha cabeça está perto de explodir. |
|
||||
|
Bem-vindo ao unix.com e por favor não explodir.
![]() pesquisa com datecalc, e você obterá um script que pode fazer o cálculo data para você. use o comando data para obter a data em que você está executando o script. Experimente 'homem data' usar awk para extrair a data a partir da logfile. datecalc utilizar para verificar a diferença entre a data atual ea data logfile. Cheers ~ |
|
||||
|
não é assim tão simples, se a data não aparece no arquivo, porque nesse minuto / hora não registra?
Postagem atualizada em ---------- ---------- anterior 06:16 update estava em 05:43 ---------- Feito ![]() Código:
#!/usr/local/bin/bash
export PATH="$PATH:/usr/local/coreutils/bin"
#07/02/09 12:35:57
ADESSO=$(cdate "+%m/%d/%y %H:%M")
UNORAFA=$(cdate -d "1 hour ago" "+%m/%d/%y %H:%M")
UNORAFA_S=$(cdate -d "1 hour ago" +%s)
echo $ADESSO
echo $UNORAFA
echo $UNORAFA_S
A="0"
while [ "$A" -lt "61" ] ; do
echo $A
QUACK=$(grep -n "$UNORAFA" daemon.log|tail -1)
if [ "$QUACK" = "" ]; then
let A=$A+1
let UNORAFA_S=$UNORAFA_S+60
UNORAFA=$(cdate -d "@$UNORAFA_S" "+%m/%d/%y %H:%M")
echo devo provare $UNORAFA
else
echo TROVATO $UNORAFA
echo $QUACK
TOTAIL=$(echo $QUACK |awk -F\: '{print $1}')
NUMLINES=$(wc -l daemon.log|awk '{print $1}')
echo $TOTAIL
echo $NUMLINES
let TOTAIL=$NUMLINES-$TOTAIL
tail -$TOTAIL daemon.log > ESTRATTO.txt
A=61
fi
done
|
|
||||
|
awk: Função sysTime não está definida.
A fonte linha número é 4. : | Mhh Código:
A. V. Aho, B. W. Kernighan, P. J. Weinberger: The AWK Programming
Language, Addison-Wesley, 1988.
STANDARDS CONFORMANCE
awk: SVID2, SVID3, XPG2, XPG3, XPG4, POSIX.2
Hewlett-Packard Company - 9 - HP-UX 11i Version 1: Mar 2007
|
![]() |
| Marcadores |
| Thread Tools | Pesquisar este Thread |
| Display Modes | Esta taxa Thread |
|
|