![]() |
|
|
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 |
| tail-f | wannalearn | Shell-programmering och Skript | 4 | 04-10-2007 06:22 |
| svans kommando .. | amon | Shell-programmering och Skript | 2 | 06-02-2006 05:36 |
| Hjälp på scripting använder svans | jisc | Shell-programmering och Skript | 4 | 05-19-2006 04: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 |
![]() |
|
|
LinkBack | Thread Tools | Sök i denna tråd | Rate Thread | Visningslägen |
|
|
|
||||
|
Tail?
Hej alla, Jag har sök på forumet och kunde inte hitta ett svar ... Här är vad jag försöker göra. Alla 15 minuter, ett script skicka upptid produktion till en loggfil (dailylog.log), som innehåller rader som den nedan: Kod:
11:21am up 44 days, 19:15, 1 user, load average: 0.00, 0.02, 0.03 Men jag försöker att extrahera endast före sista raden och skicka den till en annan fil. Saken är den att använda svansen -2 kommer att visa mig de senaste 2 rader ... Jag behöver inte den sista raden. Loggen växer var 15 minuter så jag vet inte hur många poster det finns i filen. Kod:
echo $(tail -10 /dailyload.log) Finns det någon som har ett förslag? |
|
||||
|
Vill du ha den nästa till sista raden, eller hur? Och bara en linje. Och lägger till en linje en annan fil. Sedan väntar 15 minuter och gör det igen? Kod:
while true
do
tail -2 logfile | head -1 >> anotherfile.log
sleep 900
done
|
|
||||
|
TKS Jim. Nu är det jag gör är att sätta 13th argument upptid kommando i en variabel, lasten, låt oss säga 0.06 och nu lägger de senaste 24 timmarna belastning och gör ett genomsnitt av det totala antalet. Här är vad jag försöker göra: Kod:
#!/usr/bin/ksh
I_COUNT=96
C_CHAINE=0
until ((I_COUNT < 1))
do
tail -$I_COUNT /dailyload.log | head -1 | awk '{print $13}' > $C_CHAINE
#average
((C_CHAINE=C_CHAINE+$13))
((I_COUNT=I_COUNT-1))
done
((C_CHAINE=C_CHAINE/96))
echo $C_CHAINE
Men kan inte få det att fungera. En idé? |
|
||||
|
Det verkar som om du tar de senaste 96 rader från loggen och finna medelvärdet av kolumn 13. Kod:
tail -96 logfile | \
awk 'BEGIN { total=0 } { total+=$13 } END{ printf("Avg=%f\n", total/NR) }'
om jag förstod vad du vill. |
![]() |
| Komihåglista |
| Taggar |
| belastning genomsnitt, uppträdande |
| Thread Tools | Sök i denna tråd |
| Visningslägen | Betygsätt denna tråd |
|
|