![]() |
|
|
google unix.com
|
|||||||
| Forums | Registrer | Forum Rules | Lenker | Album | FAQ | Medlemsliste | Kalender | Søke | Dagens innlegg | Marker forumene som lest |
| 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 |
![]() |
|
|
LinkBack | Thread Tools | Søk i denne tråden | Rate Thread | Visningsmoduser |
|
|
|
||||
|
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? |
|
||||
|
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
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
|
|
||||
|
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.. |
![]() |
| Hugseliste |
| Thread Tools | Søk i denne tråden |
| Visningsmoduser | Ranger denne tråden |
|
|