The UNIX and Linux Forums  


Go Back   UNIX og Linux Forums > Top Forums > Shell programmering og Skripting
.
google unix.com



Shell programmering og Skripting Post spørsmål om ksh, csh, SH, Bash, Perl, PHP, SED, awk og ANDRE shell scripts og Shell skriptespråk her.

Mer UNIX og Linux Forum Emner Du kan finne nyttig
Tråd Tråd startet Forum Svar Siste innlegg
tail-f wannalearn Shell programmering og Skripting 4 04-10-2007 06:22
Halen? qfwfq Shell programmering og Skripting 7 06-19-2006 02:15
Hvordan sed med halen redlotus72 UNIX for Dummies Spørsmål og svar 1 08-30-2005 06:27
bruker halen-f cdunavent Shell programmering og Skripting 6 10-23-2002 06:10
Halen User bbutler3295 UNIX for Dummies Spørsmål og svar 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 Søk i denne tråden Rate Thread Visningsmoduser
  #1 (permalink)  
Old 05-18-2006
jisc jisc is offline
Registrert bruker
  
 

Bli Date: Mar 2006
Innlegg: 6
Hjelp på scripting bruker halen

Hei, trenger hjelp her, har jeg denne kommandoen at jeg må kjøre alle gjennom hele dagen, i utgangspunktet vil dette bare overvåke en logfile og skrive ut en linje hvis Theres en feil.

tail-f L * | grep "er død"

Dette vil echo en linje "*** PROSESSEN er død: RW [Signal m / Core dump: 10] ***" når et program som logger en død prosessen feilen.

det jeg trenger er å legge til en kommando som skal kjøre hver gang en linje grep. kan noen her hjelpe meg.

Kanskje det er noe som ser ut som dette, men jeg dont vite syntaksen.

tail-f L * | grep "er død"-exec mailx "blah blah" () \;

kan noen hjelpe meg?
  #2 (permalink)  
Old 05-18-2006
ranj @ chn ranj@chn is offline Forum Advisor  
Spille med Ubuntu Now!
  
 

Bli Dato: Oct 2005
Beliggenhet: Chennai
Innlegg: 365
noe lignende

Du har noe lignende her
  #3 (permalink)  
Old 05-19-2006
jisc jisc is offline
Registrert bruker
  
 

Bli Date: Mar 2006
Innlegg: 6
Takk for link ranj

Code:
#! /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
        
Jeg vet for litlle av scripting så vil jeg gjerne spørre om dere kan hjelpe meg debug denne koden. koden ovenfor fungerer, fordi det hele er oppgitt, men jeg vil bare ha et mønster som samsvarer ikke et absolutt kamp av linjen, slik at jeg ønsker å endre den til "* er DEAD *" men det fungerer ikke. Kan du hjelpe meg med dette? Hvordan mønstersamsvar arbeidet med skripting?

og en viktig ting, vil jeg gjerne legge til som du kan se mine loggfilnavnet er LOG.MM.DD der MM er måneden og DD er dagen. Hvordan kan jeg legge til en kode i manuset å gjøre halen kommandoen stoppe og starte på nytt 12:05 (når loggfilnavnet endres). utgangspunktet var jeg tenker på å endre det, mens en del til mens lese-p err_line & & curr_date \u003d `date" +% M.% d "` og deretter ble hele koden til en loop.

så jeg ble thinkng med å endre skriptet fra det ovennevnte til dette:

Code:
#! /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
        
men det ikke fungerer, kan dere hjelpe meg å løse dette?
  #4 (permalink)  
Old 05-19-2006
ranj @ chn ranj@chn is offline Forum Advisor  
Spille med Ubuntu Now!
  
 

Bli Dato: Oct 2005
Beliggenhet: Chennai
Innlegg: 365
Forsøk som dette! Ikke sikker på om den er effektiv.

mens lese-p err_line
gjøre
echo $ err_line | grep "mønsteret" & & echo "mailx scripts her"
ferdig


For endring av tidsstempel i logfile, kan du sjekke for tiden i denne loop og avslutte den etter 00:00, og start deretter loop igjen. Se om dette fungerer for deg.
Du kan fange pid av bakgrunnen jobb og drepe den før du tilordne logfile navn, men sørg for at du har mange feil sjekke inn i manuset. Jeg gjorde det nedenfor som dette.
mens sant # hoveddisplayet loop
gjøre
tail-f $ logfile | &
mens lese-p linje
gjøre
job_id \u003d $! # få bakgrunnen jobb prosess id

echo $ line | grep "mønsteret" & & echo "mailx scripts gå her"

Hvis [[ `date +% H`-lt 1-en `date +% M`-gt 5]]; deretter # sjekke for din tid
break; # bryte ut fra loop
fi
ferdig

kill $ job_id # drepe id

sleep 5 # vente på en gang for drepe for å fullføre handlingen.

logfile \u003d "$ LOG/May_19.log" # tildele logfile
ferdig

Sist endret av ranj @ chn; 05-19-2006 på 03:08..
  #5 (permalink)  
Old 05-19-2006
jisc jisc is offline
Registrert bruker
  
 

Bli Date: Mar 2006
Innlegg: 6
takket ranj, skriptet fungerer, jeg setter pris på din hjelp
Closed Thread

Hugseliste

Thread Tools Søk i denne tråden
Søk i denne tråden:

Avansert søk
Visningsmoduser Ranger denne tråden
Ranger denne tråden:

Innleggsaktivitet Regler
Du kanskje ikke poste nye tråder
Du kanskje ikke poste svar
Du kanskje ikke post vedlegg
Du kanskje ikke redigere innleggene dine

BB-kode er
Smilefjes er
[IMG] koden
HTML-koden Av
Pingbacks er
Refbacks er




Alle klokkeslett er GMT -4. Nå er klokken 06:52.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Language Translations Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. All Rights Reserved.Ad Management by RedTyger

Content Relevant nettadresser av vBSEO 3.2.0