![]() |
|
|
google unix.com
|
|||||||
| Forum | Registrera | Forum Regler | Länkar | Album | FAQ | Medlemslista | Kalender | Söka | Dagens inlägg | Markera forum som lästa |
| Shell-programmering och Skript Post frågor om ksh, CSH, SH, bash, PERL, PHP, sed, awk och andra skalskript och skal skriptspråk här. |
Mer UNIX och Linux Forum Ämnen Du kan hitta Helpful
|
||||
| Tråd | Thread Starter | Forum | Svar | Senaste Inlägg |
| Om sedan Else Logic | jadionne | UNIX for Dummies Frågor & Svar | 7 | 11-23-2007 04:27 |
| kan inte få det logiska | dineshr85 | Shell-programmering och Skript | 3 | 10-11-2007 08:34 |
| Skriptet fungerar inte, men kommandon i arbete | cheongww | UNIX for Dummies Frågor & Svar | 2 | 11-14-2006 10:52 |
| Automatiserad FTP till rörlig katalog med fel kontroll | songtam | UNIX for Dummies Frågor & Svar | 3 | 04-10-2006 10:57 |
| Status kontrollera automatiserade FTP | anijog | Shell-programmering och Skript | 5 | 03-04-2004 02:30 |
![]() |
|
|
LinkBack | Thread Tools | Sök i denna tråd | Rate Thread | Visningslägen |
|
|
|
||||
|
Behöver logik för kontroll automatiskt jobb arbeta i awk eller SED.
Jag har ett Java-program som automatiskt utlöser några reguljära jobb att uppdatera Db eller något annat arbete. Jag spårar jobben med loggmeddelanden och ta reda på det är väl skött eller inte. Jag vill skriva ett skript för att fånga den på rätt sätt i tid.
Säg jobb 1 körs på 15, 30 och 45 varje timme så lämnar en post i loggfilen att "jobb 1 startas". Så här. Exempel för timme 11:00 medel -- Arbetare # Scheduler_Worker-3: 23:15:56 105 SendToCM: run () Inresa där "SendToCM: run () Entry" börjar log budskap som Java-programmet skriva i loggen meddelandet "23:15:56"Är det dags. Jag måste kolla den sista timmen 15, 30, 45 min loggfiler för att ta reda på posten är de eller inte då jag intima via mail till mig. Jag har en logik, men inte testat ännu. För 15 min jag kontrollera med sed så här, sed -n '/: $ h: 15:00 /, /: $ h: 15:01 / p "schedulerTrace. logga> Job1.log Här $ h innehåller aktuella timme och i job1.log jag kontrollera igen liksom count \u003d grep-c "SendToCM: run () Entry" Job1.log. Om räkningen är noll då det jobb 1 är inte sprang och jag måste kontrollera undantag. Men detta resonemang är mycket sned för mig. Kan du mig snälla hjälp mig ta reda på ett korrekt logik för detta. Hälsningar, Senthilkumar. |
|
||||
|
Varför inte strunta i sekunder komponent helt och bara göra något liknande: Kod:
if grep -q ": $h:15.*SendToCM: run()" schedulerTrace.log
then
echo job did run
else
echo job did not run
fi
Senast redigerad av Annihilannic; 09-01-2008 vid 03:46.. Orsak: glömde SendToCm del |
|
||||
|
Så ... du vill bara du kolla en gång i timmen och se om det har gått tre gånger? Kod:
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
Jag antar att det finns bara en dag är värt arbetstillfällen i loggen, annars naturligtvis du matchar den föregående dagens jobb också. |
|
||||
|
Ja du har rätt, loggfilerna innehåller endast en dag loggar. Men med detta villkor Jag brukar vara kontrollera jobbet när de inte sprang, så jag ändrade lite och användas så här, snälla låt mig få veta om det görs några sak fel.
# Loop kontrollera jobb 1 <Send vill CM startat ordentligt eller not> om [$ min-GE 1-o $ min-lt 30]; sedan count \u003d "grep-ic": $ hr: 01 .* SendToCM: Start: "$ loggsökväg" Elif [$ min-GE 30-o $ min-le 59]; sedan count \u003d "grep-ic": $ hr: 30 .* SendToCM: Start: "$ loggsökväg" fi Om [$ count-eq 0]; sedan echo-e "\ nDet jobb 1 Skicka till CM inte startas eftersom schdueld på 1 och 30">> mail.log fi Jag kommer att posta mail.log äntligen efter kontroll för andra jobb också |
![]() |
| Komihåglista |
| Taggar |
| awk, grep eller, sed |
| Thread Tools | Sök i denna tråd |
| Visningslägen | Betygsätt denna tråd |
|
|