The UNIX and Linux Forums  

Go Back   UNIX och Linux Forum > Upp Forum > Shell-programmering och Skript
.
google unix.com



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
tail-f wannalearn Shell-programmering och Skript 4 04-10-2007 06:22
Tail? qfwfq Shell-programmering och Skript 7 06-19-2006 02:15
hur sed med svans redlotus72 UNIX for Dummies Frågor & Svar 1 08-30-2005 06:27
använder tail-f cdunavent Shell-programmering och Skript 6 10-23-2002 06:10
Slutgas User bbutler3295 UNIX for Dummies Frågor & 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 denna tråd Rate Thread Visningslägen
  #1 (permalänk)  
Old 05-18-2006
jisc jisc is offline
Registered User
  
 

Join Date: mars 2006
Inlägg: 6
Hjälp på scripting använder svans

Hej, behöver hjälp här, jag har det här kommandot som jag behöver för att köra hela den dagen, i princip kommer detta att bara övervaka en loggfil och skriva en rad om Theres ett fel.

tail-f L * | grep "är död"

detta kommer att upprepa en rad "*** är döda: RW [Signal w / Core dumpfilen: 10] ***" när ett program som loggar en död processen fel.

vad jag behöver är att lägga till ett kommando som ska köras varje gång en rad grep. kan någon här hjälpa mig.

kanske dess något som ser ut så här men jag vet inte syntaxen.

tail-f L * | grep "är död"-exec mailx "BLAH BLAH" () \;

kan någon hjälpa mig?
  #2 (permalänk)  
Old 05-18-2006
ranj @ chn ranj@chn is offline Forum Advisor  
Att spela med Ubuntu Now!
  
 

Join Date: oktober 2005
Plats: Chennai
Inlägg: 365
något liknande

Du har något liknande här
  #3 (permalänk)  
Old 05-19-2006
jisc jisc is offline
Registered User
  
 

Join Date: mars 2006
Inlägg: 6
tack för länken ranj


Kod:
#! /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

Jag vet alltför litlle av scripting, så jag skulle vilja fråga om ni kan hjälpa mig felsöka denna kod. koden ovan fungerar, eftersom hela anges, men jag vill bara ha ett mönster stämmer inte ett absolut matchen i rad så jag skulle vilja ändra det till "* är DÖD *" men inte fungerar. Kan du hjälpa mig med detta? hur mönstermatchning arbetet med manus?

samt ytterligare en viktig sak, jag vill lägga till som du kan se min Loggfilen heter LOG.MM.DD där MM är månaden och DD är dagen. Hur kan jag lägga till ett nummer i skriptet att göra tail kommando stannar och startar igen på 12:05 (när loggfilen namn kommer att ändras). grunden jag tänkte att ändra medan en del att medan läs-p err_line & & curr_date \u003d "date" +% m% d `" och sedan lägga hela koden på en slinga.

så jag var thinkng byte av skript från det ovan så här:


Kod:
#! /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 inte fungerar, kan ni hjälpa mig att rätta till detta?
  #4 (permalänk)  
Old 05-19-2006
ranj @ chn ranj@chn is offline Forum Advisor  
Att spela med Ubuntu Now!
  
 

Join Date: oktober 2005
Plats: Chennai
Inlägg: 365
Prova så här! Osäker om det är effektivt.

medan läs-p err_line
göra
echo $ err_line | grep "mönster" & & echo "mailx skript går här"
gjord


Vid byte av tidsstämpel i loggfil kan du kontrollera om den tid i denna loop och avsluta den efter 00:00 och därefter börja loopen igen. Se om detta fungerar för dig.
Du kan fånga pid av bakgrundskorrigerade jobb och dödar det innan du flytta den loggfil namn, men se till att du har många fel kontrollera i skriptet. Jag gjorde det under så här.
men sant # de viktigaste loop
göra
tail-f $ loggfil | &
medan läs-p linje
göra
job_id \u003d $! # få bakgrunden jobb process id

echo $ line | grep "mönster" & & echo "mailx skript går här"

om [[ "datum +% H"-lt 1-en "datum +% M`-gt 5]]; sedan # kontrollera om din temne
break; # bryta ut från loop
fi
gjord

kill $ job_id # döda id

sova 5 # vänta på någon för att döda för att slutföra sin talan.

loggfil \u003d "$ LOG/May_19.log" # flytta loggfil
gjord

Senast redigerad av ranj @ chn; 05-19-2006 vid 03:08..
  #5 (permalänk)  
Old 05-19-2006
jisc jisc is offline
Registered User
  
 

Join Date: mars 2006
Inlägg: 6
tack ranj, skriptet fungerar, jag uppskattar din hjälp
Closed Thread

Komihåglista

Thread Tools Sök i denna tråd
Sök i denna tråd:

Avancerad sökning
Visningslägen Betygsätt denna tråd
Betygsätt denna tråd:

Utstationering Regler
Du får inte efter nya trådar
Du får inte efter svar
Du får inte skicka bilagor
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG] kod
HTML-koden är Av
Trackback är
Pingbacks är
Refbacks är




Alla tider är GMT -4. Klockan är nu 05:26.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Översättningar Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX och Linux Forum Innehållet upphovsrättsskyddat © 1993-2009. All Rights Reserved.Ad förvaltning RedTyger

Content Relevant webbadresser från vBSEO 3.2.0