Plug vraagje: Hoeveel ruimte hebt u nog op uw schijven? Een beetje of veel? Vervolgvraag: Weet u hoe u daar achter kunt komen? Als u een GUI-desktop gebruikt (bijvoorbeeld GNOME, KDE, Mate, Pantheon, enzovoort), is dat waarschijnlijk vrij eenvoudig. Maar wat als je kijkt naar een headless server, zonder GUI? Moet je dan hulpmiddelen installeren voor deze taak? Het antwoord is een volmondig neen. Alle noodzakelijke bits zijn al aanwezig om u te helpen precies te weten te komen hoeveel ruimte er nog over is op uw schijven. In feite hebt u twee zeer gemakkelijk te gebruiken opties bij de hand.
In dit artikel, zal ik deze tools demonstreren. Ik gebruik Elementary OS, dat ook een GUI optie heeft, maar we gaan ons beperken tot de command line. Het goede nieuws is dat deze command-line tools beschikbaar zijn voor iedere Linux distributie. Op mijn testsysteem zijn er een aantal aangesloten schijven (zowel interne als externe). De gebruikte commando’s zijn agnostisch ten opzichte van waar een schijf is aangesloten; ze geven er alleen om dat de schijf is aangekoppeld en zichtbaar is voor het besturingssysteem.
Met dat gezegd, laten we eens kijken naar de tools.
df
Het df commando is de tool die ik voor het eerst gebruikte om schijfruimte te ontdekken onder Linux, ver terug in de jaren negentig. Het is heel eenvoudig in zowel gebruik als rapportage. Tot op de dag van vandaag is df mijn favoriete commando voor deze taak. Dit commando heeft een paar schakelaars, maar voor basisrapportering heb je er maar één nodig. Dat commando is df -H. De -H optie is voor een menselijk leesbaar formaat. De uitvoer van df -H zal rapporteren hoeveel ruimte gebruikt is, beschikbaar, percentage gebruikt, en het koppelpunt van elke schijf die aan uw systeem hangt (Figuur 1).
Wat als uw lijst van schijven bijzonder lang is en u alleen de gebruikte ruimte op één enkele schijf wilt bekijken? Met df is dat mogelijk. Laten we eens kijken hoeveel ruimte er op onze primaire schijf, /dev/sda1, in gebruik is. Geef daarvoor het commando:
df -H /dev/sda1
De uitvoer wordt beperkt tot die ene schijf (Figuur 2).
U kunt ook de gerapporteerde velden beperken die in de uitvoer van df worden getoond. De beschikbare velden zijn:
-
bron – de bron van het bestandssysteem
-
grootte – totaal aantal blokken
-
gebruikt – gebruikte ruimte op een station
-
av – beschikbare ruimte op een station
-
pcent – percentage van gebruikte ruimte, gedeeld door de totale grootte
-
target – koppelpunt van een schijf
Laten we de uitvoer van al onze schijven eens weergeven, waarbij we alleen de velden grootte, gebruikte en avail (of beschikbaarheid) laten zien. Het commando hiervoor zou zijn:
df -H --output=size,used,avail
De uitvoer van dit commando is vrij eenvoudig te lezen (Figuur 3).
Het enige voorbehoud hier is dat we de bron van de uitvoer niet kennen, dus we zouden de bron als volgt willen opnemen:
df -H --output=source,size,used,avail
Nu is de uitvoer zinvoller (Figuur 4).
du
Ons volgende commando is du. Zoals je zou verwachten, staat dat voor disk usage. Het du commando is heel anders dan het df commando, in die zin dat het rapporteert over directories en niet over schijven. Daarom wil je de namen weten van de mappen die gecontroleerd moeten worden. Stel ik heb een directory met virtuele machine bestanden op mijn machine. Die directory is /media/jack/HALEY/VIRTUALBOX. Als ik wil weten hoeveel ruimte die map in beslag neemt, voer ik het volgende commando uit:
du -h /media/jack/HALEY/VIRTUALBOX
De uitvoer van het bovenstaande commando zal de grootte van elk bestand in de map weergeven (Figuur 5).
Tot nu toe is dit commando niet erg behulpzaam. Wat als we het totale gebruik van een bepaalde directory willen weten? Gelukkig kan du die taak aan. Voor dezelfde directory zou het commando zijn:
du -sh /media/jack/HALEY/VIRTUALBOX/
Nu weten we hoeveel ruimte de bestanden in totaal innemen in die directory (Figuur 6).
U kunt dit commando ook gebruiken om te zien hoeveel ruimte er wordt gebruikt in alle childdirectories van een parent, op de volgende manier:
du -h /media/jack/HALEY
De uitvoer van dit commando (Figuur 7) is een goede manier om erachter te komen welke subdirectories ruimte op een schijf in beslag nemen.
Het commando du is ook een goed hulpmiddel om een lijst te krijgen van mappen die de meeste schijfruimte op uw systeem gebruiken. De manier om dit te doen is door de uitvoer van du te pipen naar twee andere commando’s: sort en head. Het commando om de top 10 mappen te vinden die ruimte op een schijf innemen, zou er ongeveer zo uitzien:
du -a /media/jack | sort -n -r | head -n 10
De uitvoer zou deze mappen opnoemen, van grootste naar minst dader (Figuur 8).
Niet zo moeilijk als u dacht
Uitzoeken hoeveel ruimte er op uw Linux-schijven wordt gebruikt is vrij eenvoudig. Zolang je drives zijn aangekoppeld op het Linux systeem, zullen zowel df als du uitstekend werk leveren door de benodigde informatie te rapporteren. Met df kun je snel een overzicht krijgen van hoeveel ruimte er op een schijf wordt gebruikt en met du kun je ontdekken hoeveel ruimte er door specifieke mappen wordt gebruikt. Deze twee tools in combinatie zouden moeten worden beschouwd als must-know voor elke Linux beheerder.
En, voor het geval je het gemist hebt, ik heb onlangs laten zien hoe je je geheugengebruik onder Linux kunt bepalen. Samen zullen deze tips u een heel eind op weg helpen bij het succesvol beheren van uw Linux-servers.
Leer meer over Linux via de gratis cursus “Inleiding tot Linux” van The Linux Foundation en edX.