Kontrollera diskutrymme med df och du
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
