The UNIX and Linux Forums  

Go Back   O UNIX e Linux Forum > Top Fóruns > Programação Shell Script e
.
google unix.com



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
script em salvas em formato comprimir naveeng.81 Programação Shell Script e 1 04-14-2008 09:31
mailx mensagens guardadas são ilegíveis (base64) Squeakygoose UNIX para Dummies Perguntas & Respostas 1 01-30-2008 11:49
Sudo arquivo não salvas Asteróide UNIX & avançada para usuários experientes 0 07-30-2007 08:18
só raiz do crontab não se salvou flok UNIX & avançada para usuários experientes 1 06-25-2007 11:50
Onde estão as senha guardados em um servidor UNIX? hast5 UNIX para Dummies Perguntas & Respostas 12 10-19-2006 05:11

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
Linkback Thread Tools Pesquisar este Thread Rate Thread Display Modes
  #1 (permalink)  
Old 10-13-2008
gugs gugs is offline
Usuário
  
 

Join Date: Jul 2008
Lugares: 44
Como posso identificar o último log salvo?

O nosso sistema gera logs quando é executado um script que não pode ser diário, os registros têm um formato: name_YYMMDD.log - nome e tanto. Log são coerentes, a data muda conforme o dia, o script é executado.

Existe uma maneira de encontrar o último log salvo?
  #2 (permalink)  
Old 10-13-2008
otheus's Avatar
otheus otheus is offline Forum Staff  
Moderador ala Mode
  
 

Join Date: Feb 2007
Local: Innsbruck, Áustria
Mensagens: 1.893

Código:
find /var/log -type f -printf "%T@\t%p\n" | sort -nr | head -1 |cut -f2

Explicação:
Procure em / var / log e encontrar todos os arquivos (-type f) e imprimir a sua mudança de hora em segundos (o que é sortable) eo nome do arquivo. Em seguida, ordenar por número de inverter a ordem para que o maior número vai ser a primeira. Leve apenas a primeira linha e corta o timestamp.
  #3 (permalink)  
Old 10-13-2008
Pô-Money Gee-Money is offline
Usuário
  
 

Join Date: Sep 2008
Lugares: 48
sobre como fazer algo parecido com isto:


Código:
ls -ltr name_*.log | tail -n 1 | awk '{ print $NF }'

  #4 (permalink)  
Old 10-13-2008
otheus's Avatar
otheus otheus is offline Forum Staff  
Moderador ala Mode
  
 

Join Date: Feb 2007
Local: Innsbruck, Áustria
Mensagens: 1.893
Na verdade, Gee-Dinheiro é na bola. Se o seu script está em um diretório específico, você não precisa encontrar. Basta ls. No entanto, o seu script é desnecessariamente complexa:

Código:
ls -1t |sed -n '/name.*\.log$/{p;q}'

ia fazer e ser um pouco mais rápida. (Normalmente, ls imprime em colunas, a menos que a impressão para um tubo. A -1 enfatiza aqui só isso.)
  #5 (permalink)  
Old 10-13-2008
gugs gugs is offline
Usuário
  
 

Join Date: Jul 2008
Lugares: 44
Porque é que isto não funciona?

Tomei o exemplo acima e desenvolveram um pequeno teste script, conforme mostrado abaixo para fazer o que eu quero:

NEXT \u003d TEST01
dir \u003d 'C: / cygwin / var / log / img / AUT /'
cmd1 \u003d "sed -n '/ "
echo $ cmd1
cmd2 \u003d ".* \. mqsc $ / (p, q) '"
echo $ cmd2
echo "cmd1 $ $ $ PRÓXIMA cmd2"> command.txt
comando \u003d $ (grep sed command.txt)
ls-1t $ dir | grep $ PRÓXIMA> temp.txt
filename \u003d $ ($ comando <temp.txt)

Os resultados que obtenho quando eu executar o script são:
+ NEXT \u003d TEST01
+ Dir \u003d C: / cygwin / var / log / img / AUT /
Cmd1 + \u003d 'sed -n '\''/'
+ Echo sed -n''\''/ '
sed -n '/
+ Cmd2 \u003d ".* \. Mqsc $ / (p, q) '\'''
+ Echo ".* \. Mqsc $ / (p, q) '\'''
.* \. mqsc $ / (p, q) '
+ Echo 'sed -n '\''/ TEST01 .* \. mqsc $ / (p, q)' \'' '
+ + Grep sed command.txt
Comando + \u003d 'sed -n '\''/ TEST01 .* \. mqsc $ / (p, q)' \'' '
+ LS-1t C: / cygwin / var / log / img / AUT /
+ Grep TEST01
+ + sed -n''\''/ TEST01 .* \. mqsc $ / (p, q) '\'''
sed:-E expressão # 1, caractere 1: comando desconhecido: `''
+ Filename \u003d


  #6 (permalink)  
Old 10-13-2008
otheus's Avatar
otheus otheus is offline Forum Staff  
Moderador ala Mode
  
 

Join Date: Feb 2007
Local: Innsbruck, Áustria
Mensagens: 1.893
Citação:
Originally Posted by gugs View Post
[SIZE \u003d 2]
Código:
'
+ echo 'sed -n '\''/TEST01.*\.mqsc$/{p;q}'\'''
Há um qouting problema algum. Estes escapou-aspas duplas não deveria estar lá em tudo.
[quote] [code]
Porque você simplesmente não pode fazer:

Código:
ls -1t $dir >temp.txt
sed -n "/$NEXT/{p;q}" temp.txt

  #7 (permalink)  
Old 10-13-2008
gugs gugs is offline
Usuário
  
 

Join Date: Jul 2008
Lugares: 44
otheus não havia razão para eu não poderia usar:

ls-1t $ dir> temp.txt
sed -n "/ $ NEXT / (p, q)" temp.txt

Eu nem sei porque eu não pensar sobre isso! Um destes dias.

OBRIGADO todos quantos ajudaram, muito apreciada. Eu não sei o que quero sem a ajuda.
Closed Thread

Marcadores

Tags
comandos unix

Thread Tools Pesquisar este Thread
Pesquisar este Thread:

Pesquisa Avançada
Display Modes Esta taxa Thread
Esta taxa Thread:

Destacamento Regimento
Você não pode postar novas threads
Você não pode postar respostas
Você não pode postar anexos
Você não pode editar suas postagens

BB code é Ligado
Smilies são Ligado
[IMG] código é Ligado
Código HTML é Desligado
Trackbacks são Ligado
Pingbacks são Ligado
Refbacks são Ligado




Todos os horários são GMT -4. A hora é agora 11:23.


Powered by: vBulletinCopyright © 2000 - 2006, Jelsoft Enterprises Limited. Língua Traduções Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
O UNIX e Linux Fóruns Content Copyright © 1993-2009. Todos os Direitos Reserved.Ad Gestão por RedTyger

Content Relevant URLs por vBSEO 3.2.0