![]() |
|
|
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 |
| Hvis Da Else Logic | jadionne | UNIX for Dummies Spørsmål og svar | 7 | 11-23-2007 04:27 |
| kan ikke komme logikken | dineshr85 | Shell programmering og Skripting | 3 | 10-11-2007 08:34 |
| Script ikke fungerer, men kommandoer i arbeid | cheongww | UNIX for Dummies Spørsmål og svar | 2 | 11-14-2006 10:52 |
| Automatiserte FTP til variabel katalog med feil sjekk | songtam | UNIX for Dummies Spørsmål og svar | 3 | 04-10-2006 10:57 |
| Status sjekk av automatiserte FTP | anijog | Shell programmering og Skripting | 5 | 03-04-2004 02:30 |
![]() |
|
|
LinkBack | Thread Tools | Søk i denne tråden | Rate Thread | Visningsmoduser |
|
|
|
||||
|
Trenger logikken for sjekk automatisert jobb arbeid i awk eller SED.
Jeg har et Java-program som automatisk vil utløse noen planlagte jobb å oppdatere Db eller annet arbeid. Jeg spore jobber med loggmeldingene og finne ut det er riktig kjøre eller ikke. Jeg vil skrive et script for å fange den på riktig måte i tide.
Si Job1 kjører på 15, 30 og 45 hver time så forlate en oppføring i loggfilen at "JOB1 startes". Som dette. Eksempel på time 11:00 betyr -- Arbeider # Scheduler_Worker-3: 23:15:56 105 SendToCM: kjøre () Entry hvor "SendToCM: kjøre () Entry" starter logge melding som Java-programmet skrive i loggen meldingen '23:15:56"Er den tid. Jeg trenger å se den siste timen 15, 30, 45 min loggfilene for å finne ut oppføringen er deres eller ikke så intimt via mail til meg. Jeg har en logikk, men ikke testet ennå. For 15 min jeg sjekke med sed som dette, sed -n "/: $ h: 15:00 / /: $ h: 15:01 / p" schedulerTrace. logge> Job1.log her $ t inneholder gjeldende time og i job1.log Jeg sjekker igjen som count \u003d grep-c "SendToCM: kjøre () Entry" Job1.log. hvis teller er null så JOB1 ikke løp og jeg må sjekke unntak. Men denne logikken er svært skjev for meg. Kunne du meg behage hjelpe meg på å finne en riktig logikk for dette. Hilsen, Senthilkumar. |
|
||||
|
Hvorfor ikke ignorere sekunder komponent fullstendig og gjør noe sånt som: Code:
if grep -q ": $h:15.*SendToCM: run()" schedulerTrace.log
then
echo job did run
else
echo job did not run
fi
Sist endret av Annihilannic; 09-01-2008 på 03:46.. Grunn: glemte SendToCm del |
|
||||
|
Så ... du vil bare kjøre sjekken når en time og se om den har kjørt tre ganger? Code:
if [[ "$(grep -Eqc ": $h:(15|30|45):.*SendToCM: run\(\)" schedulerTrace.log)" -eq 3 ]]
then
echo job did run 3 times in the hour
else
echo job did not run 3 times in the hour
fi
Jeg antar at det finnes bare én dag er verdt jobber i loggen, ellers selvsagt vil du matche gårsdagens jobber også. |
|
||||
|
Vel ja du har rett, loggfiler inneholder bare én dag logger. Men med denne tilstanden i wont være kontrollere jobben når det ikke gikk, så jeg endret litt og brukt som dette, kan du gi meg beskjed hvis gjort noen ting galt.
# Loop å se Job1 <Send Slik CM startet riktig eller not> hvis [$ min-ge 1-o $ min-lt 30]; deretter count \u003d `grep-ic": $ hr: 01 .* SendToCM: Start: "$ logpath` elif [$ min-ge 30-o $ min-le 59], og count \u003d `grep-ic": $ hr: 30 .* SendToCM: Start: "$ logpath` fi hvis [$ count-eq 0]; deretter echo-e "\ nDe Job1 Send til CM er ikke startet som schdueld til 1 og 30">> mail.log fi Jeg vil sende mail.log til sist etter å se etter andre jobber for |
![]() |
| Hugseliste |
| Tags |
| awk, grep eller, sed |
| Thread Tools | Søk i denne tråden |
| Visningsmoduser | Ranger denne tråden |
|
|