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
tail-f wannalearn Programação Shell Script e 4 04-10-2007 06:22
Cauda? qfwfq Programação Shell Script e 7 06-19-2006 02:15
como sed com cauda redlotus72 UNIX para Dummies Perguntas & Respostas 1 08-30-2005 06:27
usando tail-f cdunavent Programação Shell Script e 6 10-23-2002 06:10
Cauda Usuário bbutler3295 UNIX para Dummies Perguntas & Respostas 7 03-21-2002 06:47

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 05-18-2006
JISC jisc is offline
Usuário
  
 

Join Date: Mar 2006
Posts: 6
Ajuda no script usando cauda

Oi, só preciso de ajuda aqui, eu tenho esse comando que eu preciso para ser executado durante todo o dia, basicamente isto irá apenas acompanhar um logfile e imprimir uma linha se theres um erro.

tail-f L * | grep "processo está morto"

esta será uma linha echo "*** processo é MORTOS: RW [Signal w / Core dump: 10] ***" sempre que um programa registra um morto processo erro.

o que eu preciso é adicionar um comando que irá executar cada vez que uma linha é grep. alguém aqui pode me ajudar.

talvez o seu algo que se pareça com isto, mas eu não sei a sintaxe.

tail-f L * | grep "processo está morto"-exec mailx "blah blah" () \;

alguém pode me ajudar?
  #2 (permalink)  
Old 05-18-2006
ranj @ CHN ranj@chn is offline Forum Advisor  
Jogando com o Ubuntu agora!
  
 

Join Date: Oct 2005
Localização: Chennai
Lugares: 365
algo semelhante

Você tem algo semelhante aqui
  #3 (permalink)  
Old 05-19-2006
JISC jisc is offline
Usuário
  
 

Join Date: Mar 2006
Posts: 6
agradecimentos para o link ranj


Código:
#! /bin/ksh
curr_date = `date "+%m.%d"`
file=/datamart/logs/LOG.`date "+%m.%d"`

tail -f $file |&
while read -p err_line; 
do [[ $err_line = "*** PROCESS IS DEAD: RW [Signal w/ Core dump: 10] ***" ]] && {
  echo "mailx scripts goes here"
 }
done

Sei também Litlle script de modo que eu gostaria de perguntar se vocês podem me ajudar a depurar o código. o código acima funciona, porque o conjunto é especificado, mas eu só quero um jogo não um padrão absoluto jogo da linha de modo que eu gostaria de mudá-la para "processo é MORTOS * *", mas não o seu trabalho. pode me ajudar nisto? como é que a correspondência por padrão trabalhar no script?

e mais uma coisa importante, eu gostaria de acrescentar, como você pode ver o meu nome do arquivo log é LOG.MM.DD onde MM é mês e DD é dia. Como posso adicionar um código no script para fazer a cauda comando parar e começar de novo em 12:05 (quando o arquivo de log nome irá mudar). basicamente estava pensando em mudar, enquanto a parte de enquanto lê-err_line p & & curr_date \u003d `date" +% m.% d "` e, em seguida, colocar todo o código de um assinante.

Então, eu estava thinkng de mudar o script de que acima do presente:


Código:
#! /bin/ksh
do
curr_date = `date "+%m.%d"`
file=/datamart/logs/LOG.`date "+%m.%d"`
tail -f $file |&
while read -p err_line && curr_date = `date "+%m.%d"`; 
do [[ $err_line = "*PROCESS IS DEAD*" ]] && {
  echo "mailx scripts goes here"
 }
done
done

mas não o seu trabalho, vocês podem me ajudar a corrigi-lo?
  #4 (permalink)  
Old 05-19-2006
ranj @ CHN ranj@chn is offline Forum Advisor  
Jogando com o Ubuntu agora!
  
 

Join Date: Oct 2005
Localização: Chennai
Lugares: 365
Experimente como este! Não tenho certeza se ele é eficiente.

enquanto lê-p err_line
fazer
echo $ err_line | grep "padrão" & & echo "mailx scripts vai aqui"
feito


Para a mudança de hora no logfile, você poderá verificar a tempo neste ciclo e que depois da saída 00:00 e depois iniciar o ciclo novamente. Veja se isso funciona para você.
Você pode pegar o pid do fundo de emprego e matá-lo antes de transferir o logfile nome, mas certifique-se que muitos dos erros em verificar o script. Eu fi-lo adiante como este.
enquanto verdade # as principais loop
fazer
tail-f $ logfile | &
enquanto lê-p linha
fazer
job_id \u003d $! # obter o fundo emprego processo id

echo $ linha | grep "padrão" & & echo "mailx scripts ir aqui"

if [[ `date +% H`-lt 1-a `data% + M`-gt 5]]; então # para verificar o seu tempo
break; # sair do loop
fi
feito

kill $ job_id # matar o id

sleep 5 # aguarde algum tempo para matar a completar a sua acção.

logfile \u003d "$ LOG/May_19.log" # reatribuir logfile
feito

Última edição por ranj @ CHN; em 05/19/2006 03:08..
  #5 (permalink)  
Old 05-19-2006
JISC jisc is offline
Usuário
  
 

Join Date: Mar 2006
Posts: 6
graças ranj, seu script funciona, eu agradeço a vossa ajuda
Closed Thread

Marcadores

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 03:26.


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