![]() |
|
|
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 |
| tail-f | wannalearn | Shell programmering og Skripting | 4 | 04-10-2007 06:22 |
| halen kommando .. | Amon | Shell programmering og Skripting | 2 | 06-02-2006 05:36 |
| Hjelp på scripting bruker halen | jisc | Shell programmering og Skripting | 4 | 05-19-2006 04:15 |
| Hvordan sed med halen | redlotus72 | UNIX for Dummies Spørsmål og svar | 1 | 08-30-2005 06:27 |
| bruker halen-f | cdunavent | Shell programmering og Skripting | 6 | 10-23-2002 06:10 |
![]() |
|
|
LinkBack | Thread Tools | Søk i denne tråden | Rate Thread | Visningsmoduser |
|
|
|
||||
|
Halen?
Hei alle, Jeg må søke på forumet og kunne ikke finne et svar ... Her er det jeg prøver å gjøre. Hvert 15. minutt, et skript sende oppetid utgang til en logfile (dailylog.log), som filen inneholder linjer lik den nedenfor: Code:
11:21am up 44 days, 19:15, 1 user, load average: 0.00, 0.02, 0.03 Nå, jeg prøver å trekke ut bare før siste linje, og send den til en annen fil. Saken er at med halen -2 viser meg de siste 2 linjer ... Jeg trenger ikke den siste linjen. Loggen øker hvert 15. minutt, så jeg vet ikke hvor mange oppføringer det er i filen. Code:
echo $(tail -10 /dailyload.log) Har noen et forslag? |
|
||||
|
Du vil at siden siste linje, ikke sant? Og bare én linje. Og legge til en linje en annen fil. Deretter venter 15 minutter og gjøre det igjen? Code:
while true
do
tail -2 logfile | head -1 >> anotherfile.log
sleep 900
done
|
|
||||
|
Tks Jim. Nå er det jeg gjør er å sette 13th argument for oppetid kommando i en variabel, belastningen La oss si 0,06, og nå legger de siste 24 timene Beregnigner og gjør et gjennomsnitt av totalen. Her er hva jeg prøver å gjøre: Code:
#!/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 ikke gjøre det arbeidet. Noen ide? |
|
||||
|
Det ser ut som du tar de siste 96 linjer fra loggen og finne gjennomsnittet av kolonne 13. Code:
tail -96 logfile | \
awk 'BEGIN { total=0 } { total+=$13 } END{ printf("Avg=%f\n", total/NR) }'
hvis jeg forstod hva du ønsker. |
![]() |
| Hugseliste |
| Tags |
| Beregnigner gjennomsnittlige, ytelse |
| Thread Tools | Søk i denne tråden |
| Visningsmoduser | Ranger denne tråden |
|
|