En kort introduktion till df och du

Då jag ofta har användning av programmen df och du tänkte jag kort introducera dom här med förhoppningen att det också kan vara till nytta för någon annan. Båda programmen används för att kontrollera tillgängligt/upptaget diskutrymme på UNIX-system (båda finns tillgängliga i både Linux och Mac OS X) men fungerar på lite olika sätt. Kommandot df används för att få en snabb överblick över tillgängliga filsystem och diskanvändningen på dessa. Kommandot du används för att lista diskanvändningen i enskilda kataloger och filer.

df – visa diskutrymme i filsystem

Kommandot df utan några argument ger på min laptop (med en hårddisk) följande:

[anders@anders-laptop ~]$ df
Filsystem             1K-block    Använt Tillgängl Anv% Monterat på
rootfs                31244260  18431140  12495796  60% /
udev                   1003096         0   1003096   0% /dev
tmpfs                  1012220      1352   1010868   1% /dev/shm
tmpfs                  1012220       732   1011488   1% /run
/dev/sda3             31244260  18431140  12495796  60% /
tmpfs                  1012220         0   1012220   0% /sys/fs/cgroup
tmpfs                  1012220         0   1012220   0% /media
/dev/sda3             31244260  18431140  12495796  60% /tmp
/dev/sda3             31244260  18431140  12495796  60% /var/tmp
/dev/sda3             31244260  18431140  12495796  60% /home
192.168.0.20:/home   950079616  24739904 877078400   3% /media/b3
192.168.0.8:/Backup  960301840 762754944 197546896  80% /media/Backup
192.168.0.8:/Upload  960301840 762754944 197546896  80% /media/Upload
192.168.0.8:/Public  960301840 762754944 197546896  80% /media/Public

Här kommer det upp en hel del, och listan är inte helt lätt att tolka om man inte har vanan inne. I första kolumnen listas här alla filsystem som finns monterade för tillfället. Vi ser till exempel att min huvudpartition ”/dev/sda3″ är monterad på ”/” alltså som root-partition och att denna partition använder 31244260 bytes och har 12495796 bytes till förfogande samt att 60% av utrymmet på disken/partitonen används. Längst ner ser vi också vilka filsystem som är monterade över nätverket, i det här fallet genom nfs (network file system). df listar ”riktiga” filsystem lokalt eller över nätverk, såväl som temporära och virtuella filsystem. Normalt sett har vi ingen större glädje av att veta status på de två sistnämnda. Inte heller är byte en särskilt meningsfull måttenhet i dagens datorvärld.

Vi gör därför ett försök att rensa upp lite i listan för att få ett för oss mer användbart resultat. df accepterar ett flertal växlar för att påverka vad som listas och hur. Den kanske enklaste och mest använda är växeln -h som står för ”human readable” och omvandlar bytes till mer lättlästa megabytes (M), gigabytes (G), osv. df -h ger följande:

[anders@anders-laptop ~]$ df -h
Filsystem          Storlek Anvnt Tillg Anv% Monterat på
rootfs                 30G   18G   12G  60% /
udev                  980M     0  980M   0% /dev
tmpfs                 989M  1,4M  988M   1% /dev/shm
tmpfs                 989M  732K  988M   1% /run
/dev/sda3              30G   18G   12G  60% /
tmpfs                 989M     0  989M   0% /sys/fs/cgroup
tmpfs                 989M     0  989M   0% /media
/dev/sda3              30G   18G   12G  60% /tmp
/dev/sda3              30G   18G   12G  60% /var/tmp
/dev/sda3              30G   18G   12G  60% /home
192.168.0.20:/home    907G   24G  837G   3% /media/b3
192.168.0.8:/Backup   916G  728G  189G  80% /media/Backup
192.168.0.8:/Upload   916G  728G  189G  80% /media/Upload
192.168.0.8:/Public   916G  728G  189G  80% /media/Public

Genast känns listan betydligt enklare att överblicka. Återstår gör då att exkludera de filsystem från listan som vi inte är intresserade av att följa. I mitt fall är det alla filsystem som används av systemet och inte direkt av mig och dessa är ovan rootfs, udev och tmpfs. För att ekludera filsystem från listan använder vi växeln -x följt av filsystemstypen. För att få reda på vilka filsystemstyper de olika partionerna tillhör använder vi växeln -T:

[anders@anders-laptop ~]$ df -h -T
Filsystem      Typ Storlek Anvnt Tillg Anv% Monterat på
rootfs      rootfs     30G   18G   12G  60% /
udev      devtmpfs    980M     0  980M   0% /dev
tmpfs        tmpfs    989M  1,4M  988M   1% /dev/shm
tmpfs        tmpfs    989M  732K  988M   1% /run
/dev/sda3     ext4     30G   18G   12G  60% /
tmpfs        tmpfs    989M     0  989M   0% /sys/fs/cgroup
tmpfs        tmpfs    989M     0  989M   0% /media
/dev/sda3     ext4     30G   18G   12G  60% /tmp
/dev/sda3     ext4     30G   18G   12G  60% /var/tmp
/dev/sda3     ext4     30G   18G   12G  60% /home
192.168.0.20:/home
               nfs    907G   24G  837G   3% /media/b3
192.168.0.8:/Backup
               nfs    916G  728G  189G  80% /media/Backup
192.168.0.8:/Upload
               nfs    916G  728G  189G  80% /media/Upload
192.168.0.8:/Public
               nfs    916G  728G  189G  80% /media/Public

Vi ser nu en ny kolumn som listar Typ. Det första filsystem jag inte var intresserad av att visa var rootfs som är av typen rootfs. Den andra var udev som listas som typen devtmpfs och den tredje var tmpfs som också är av typen tmpfs. Då kan vi alltså börja använda växeln -x för att exkludera oönskade filsystemstyper:

[anders@anders-laptop ~]$ df -h -x rootfs -x devtmpfs -x tmpfs
Filsystem          Storlek Anvnt Tillg Anv% Monterat på
/dev/sda3              30G   18G   12G  60% /
/dev/sda3              30G   18G   12G  60% /tmp
/dev/sda3              30G   18G   12G  60% /var/tmp
/dev/sda3              30G   18G   12G  60% /home
192.168.0.20:/home    907G   24G  837G   3% /media/b3
192.168.0.8:/Backup   916G  728G  189G  80% /media/Backup
192.168.0.8:/Upload   916G  728G  189G  80% /media/Upload
192.168.0.8:/Public   916G  728G  189G  80% /media/Public

Aningen enklare att överblicka än tidigare, eller hur? Däremot ganska krångligt att skriva ut hela kommandot med växlar varje gång vi bara vill kolla tillgängligt diskutrymme. Då det är såhär jag alltid vill att kommandot df ska lista filsystem åt mig lägger jag till kommandot med alla växlar som ett alias för ”df”:

[anders@anders-laptop ~]$ alias df='df -h -x rootfs -x devtmpfs -x tmpfs'

Nu kommer det räcka med att skriva bara ”df” för att använda programmet med samtliga växlar vi valt att nyttja. På så vis slipper vi framöver komma ihåg alla filsystemstyper vi inte är intresserade av utan skriver bara ”df” som vanligt och får automagiskt programmet att visa vad vi vill se! Vi har nu sparat vårt alias i minnet. Detta kommer dock försvinna när vi startar om datorn eller loggar ut vår användare. Det sista vi gör är därför att spara vårt alias på hårddisken så att det automatiskt läses in varje gång vi loggar in. Det gör vi genom att klistra in kommandot (precis som det skrevs ut i terminalen) i filen .bashrc som ligger i vår hemkatalog. Ligger den inte där kan du själv skapa den. Nu har vi framöver ett användarvänligt df till vår nytta!

du – visa diskanvändning i kataloger och filer

Kommandot du använder vi när vi vill veta exakt vilka kataloger (och om vi vill, filer) som tar upp plats på disken.  Kommandot utan några växlar listar som standard alla kataloger i den nuvarande katalogen och skriver ut hur många bytes katalogen (med underkataloger och filer) använder. Växeln -a (all) använder vi om vi utöver kataloger även vill visa filer. Även här kan vi använda växeln -h (human readable) för att få en mer lättbegriplig lista:

[anders@anders-laptop HTC Desire]$ du -h
47M	./20-08-2011
76M	./24-4-2011
66M	./23-11-2010
49M	./12-08-2011
30M	./03-01-2011
134M	./Första bilderna
16M	./28-08-2011
125M	./24-07-2011
539M	.

Ovan kör jag kommandot du -h i katalogen ”HTC Desire” (som innehåller alla bilder jag tagit med min mobiltelefon). Totalt är det 8 underkataloger. Den sista raden är en sammanfattning av katalogens totala storlek, det vill säga summan av samtliga underkataloger. Ofta är det bara den siffran vi är intresserade av och kan då använda växeln -s (summary) för just det ändamålet:

[anders@anders-laptop HTC Desire]$ du -sh
539M	.

Skriver vi t.ex. ”du -sh ~” får vi veta hur mycket utrymme hela vår hemkatalog tar upp. Tar vi bort växeln -s får vi veta exakt vilka kataloger som tar upp mest plats. Användbart när du vill jaga de största utrymmestjuvarna.

Avslutningsvis, en elegant variant vi kan använda för att hitta de största katalogerna är att skicka programmets output vidare till kommandot sort för att visa katalogerna i storleksordning. I kommandot nedan skickar vi dessutom den sorterade listan till kommandot tail för att begränsa listan till de 10 största katalogerna i vår hemkatalog:

[anders@anders-laptop HTC Desire]$ du ~ | sort -n | tail 

Kommentera