fstat på FreeBSD

Posted on 29.12.2006 by Kim N. Lesmer.
Dette er en lille tutorial i brugen af fstat på OpenBSD, FreeBSD og NetBSD.

fstat er et nyttigt lille værktøj, der kan bruges til at identificere åbne filer.

Når f.eks. webbrowseren kører, vil den have nogle filer åbne i /tmp. Andre programmer vil have nogle filer åbne i mappen /var/log.

Åbne filer betyder: "filer som et eller andet givent program arbejder med lige nu."

Hvis man f.eks. vil se, hvilke programmer der arbejder med hvilke filer i mappen /tmp kan man gøre det med kommandoen:

$ fstat -f /tmp

Lige nu sidder jeg og skriver et indlæg på en weblog med browseren Konqueror, og ovenstående kommando giver følgende resultat:

USER CMD PID FD MOUNT INUM MODE SZ|DV R/W
foo konqueror 718 10 /tmp 49398 -rw------- 2822 rw
foo konqueror 718 11 /tmp 49465 -rw------- 18740 rw
foo konqueror 718 15 /tmp 49460 -rw------- 9653 rw
foo konqueror 718 16 /tmp 49424 -rw------- 17393 rw
foo konqueror 718 17 /tmp 49449 -rw------- 18641 rw
foo konqueror 718 18 /tmp 49450 -rw------- 1496 rw
foo konqueror 718 20 /tmp 49463 -rw------- 12190 rw
foo konqueror 718 21 /tmp 49442 -rw------- 1496 rw
foo konqueror 718 22 /tmp 49464 -rw------- 9653 rw
foo konqueror 718 23 /tmp 49466 -rw------- 8884 rw
foo konqueror 718 25 /tmp 49454 -rw------- 18404 rw
foo konqueror 718 28 /tmp 49461 -rw------- 56541 rw
foo konqueror 718 29 /tmp 49462 -rw------- 12126 rw

Hvis jeg f.eks. gerne vil se, hvilke filer der er åbne i mappen /var/log af en bestemt bruger på systemet, kan jeg se det med denne kommando:

$ fstat -u BRUGERNAVN -f /var/log

Hvor BRUGERNAVN er login navnet på brugeren.

Resulatet bliver i mit tilfælde:

USER CMD PID FD MOUNT INUM MODE SZ|DV R/W
foo konsole 822 9 /var 72160 -rw-r--r-- 1230512 r
foo kdeinit 737 7 /var 72160 -rw-r--r-- 1230512 r
foo kdeinit 729 10 /var 72160 -rw-r--r-- 1230512 r
foo kdeinit 727 8 /var 72160 -rw-r--r-- 1230512 r
foo konqueror 718 9 /var 72160 -rw-r--r-- 1230512 r

Jeg kan se, at der er fem tilfælde, hvor et program der er startet af brugeren foo, har en åben fil i mappen /var/log.

For yderligere oplysninger om brugen af fstat se man fstat.