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
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

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 09-01-2008
senthilkumar_ak senthilkumar_ak is offline
Registrert bruker
  
 

Bli Dato: Aug 2008
Beliggenhet: Chennai
Innlegg: 43
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.
  #2 (permalink)  
Old 09-01-2008
Annihilannic Annihilannic is offline Forum Advisor  
  
 

Bli Dato: mai 2008
Beliggenhet: Sydney, Australia
Innlegg: 1009
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
  #3 (permalink)  
Old 09-01-2008
senthilkumar_ak senthilkumar_ak is offline
Registrert bruker
  
 

Bli Dato: Aug 2008
Beliggenhet: Chennai
Innlegg: 43
Fantastic Annihilannic,

Takk for forslaget. En ting til.

Er det mulig for meg å se alle 15, 30,45 entires i ett grep eller jeg vil bruke en separte en.

Senthil
  #4 (permalink)  
Old 09-01-2008
Annihilannic Annihilannic is offline Forum Advisor  
  
 

Bli Dato: mai 2008
Beliggenhet: Sydney, Australia
Innlegg: 1009
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å.
  #5 (permalink)  
Old 09-04-2008
senthilkumar_ak senthilkumar_ak is offline
Registrert bruker
  
 

Bli Dato: Aug 2008
Beliggenhet: Chennai
Innlegg: 43
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
  #6 (permalink)  
Old 09-04-2008
Annihilannic Annihilannic is offline Forum Advisor  
  
 

Bli Dato: mai 2008
Beliggenhet: Sydney, Australia
Innlegg: 1009
Jeg ser ikke noe åpenbart galt der.
Closed Thread

Hugseliste

Tags
awk, grep eller, sed

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 01:40.


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