![]() |
|
|
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 |
| 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 |
![]() |
|
|
Linkback | Thread Tools | Pesquisar este Thread | Rate Thread | Display Modes |
|
|
|
||||
|
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? |
|
||||
|
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? |
|
||||
|
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.. |
![]() |
| Marcadores |
| Thread Tools | Pesquisar este Thread |
| Display Modes | Esta taxa Thread |
|
|