Hoe je jouw schijfgebruik in Linux kunt controleren

Geschatte leestijd: 3 min

Introductie

Eén van de belangrijkste taken die je moet bijhouden is het controleren van je schijven. Je server kan namelijk bevriezen of niet meer goed functioneren wanneer de hoofdschijf vol zit. In zo een situatie kan het ook lastig zijn om jouw gegevens te herstellen. In dit artikel leer je, hoe je jouw schijfgebruik op jouw Linux server kunt checken met behulp van df. Dit is een handige tool om te zien hoe vol de schijf is en welke programma’s jouw schijfruimte in beslag nemen.

Vereisten

We gaan ervan uit dat je een server hebt met een Linux installatie. Het df-hulpprogramma is een standaard hulpprogramma uit de jaren 70 en is beschikbaar op alle Linux-distributies en op Macs in de terminal.

Stap 1 – Informatie op systeemniveau

We beginnen met de basisversie van het commando. Voer het onderstaande commando uit om te controleren hoe vol je schijf is:

df -h

Je ziet nu een lijst met schijven samen met hoeveel ruimte er al in beslag is genomen. De h-flag vertelt df om de output in human-readable units te geven. Dit is handig, omdat de output dan anders in bytes wordt weergegeven en jouw complete scherm in beslag zal nemen. Als je verschillende units wilt dan kun je -B gebruiken en de eerste letter van de unit die je wilt (e.g. -BM voor megabytes, -BT voor terabytes).

Elke regel bevat informatie over:
– het bestandssysteem
– de grootte van de schijf
– de hoeveelheid ruimte die op de schijf wordt gebruikt
– de hoeveelheid die wordt gebruikt als  percentage en het koppelpunt voor dat bestandssysteem.

Dit schijf-overzicht is erg handig om te controleren of er problemen zijn met jouw schijfgebruik.

Een handige tip is ook om de --totalflag toe te voegen zodat je een regel kunt aanmaken die een samenvatting geeft van elke disk. Dit is handig, omdat je een overzicht krijgt van het hele systeem. Onthoud echter wel dat programma’s kunnen vastlopen, als de schijf waarnaar ze schrijven vol is, zelfs als er een andere schijf is met beschikbare ruimte.

Stap 2 – Directory-Level Informatie

Hoewel df op disk-level niveau het bestandssysteem en schijfgebruik laat zien, kan het zo zijn dat je je nog steeds drukt maakt om welke bestanden gebruikmaken van zoveel ruimte. Dit is het moment waar du handig kan zijn.

Als aanvulling op df kun je met du de grootte van individuele bestanden en mappen op een schijf zien. Je kunt het gebruiken door een bestand of directory naam op te geven. Om bijvoorbeeld de grootte van alle bestanden in jouw home directory te bekijken, kun je het onderstaande commando uitvoeren.

du -h ~

Je ziet nu een een regel ouput voor elke bestand en elke map van jouw home directory. Houd er wel rekening mee dat de output heel erg lang is, zelfs langer dan df. Dit komt doordat du standaard recursief de mappen zal nalopen.  Om de output te beperken kun je de“–max-depth” flag gebruiken. Met het onderstaande commando kun je de grootte van de basismap en onderliggende items uitvoeren.

du -h --max-depth=1 ~

Houd er rekening mee dat de output van du niet is gesorteerd. Om de output beter te gebruiken, gaan we in de volgende stap een pipeline gebruiken.

Stap 3 – Identificeer Outliers

We kunnen de output van du combineren tot een bash pipeline om de grootste “boosdoeners” achter te halen. We gebruiken de opdracht “sort” om de uitvoer te sorteren op bestandsgrootte en we gebruiken de opdracht “tail” om de uitvoer te beperken tot de top 3 boosdoeners.

du -h --max-depth=1 ~ | sort -h | tail -n 3

Omdat we de -h-flag in du gebruiken voor de human-readable output, maken we gebruik van dezelfde flag in sort. Met Sort worden de regels met het grootste bestand als laatste uitgevoerd, dus we gebruiken tail om de onderste 3 rijen te krijgen. Om meer of minder overtreders te zien, kun je het nummer veranderen die je aan “-n” doorgeeft.

Stap 4 – Meer informatie verkrijgen

Hoewel we df alleen wordt gebruikt om informatie op bestandsniveau te krijgen, is het ook nuttig voor andere bestandssysteeminformatie. Als je bijvoorbeeld geïnteresseerd bent in inode-informatie kun je het onderstaande commando uitvoeren:

df -i

Je kunt ook informatie krijgen over de systeem-inodes. Wil je weten welk bestandssysteem een bepaalde schijf of partitie gebruikt? Dan kun je het onderstaande commando uitvoeren:

df -Th

Om de volledige informatie voor elke eenheid te krijgen, met het bestandssysteemtype onder “type” voer je het volgende commando uit.

Filesystem     Type   Size  Used Avail Use% Mounted on
rootfs         lxfs   476G  181G  296G  38% /
tmpfs          tmpfs  476G  181G  296G  38% /dev
tmpfs          tmpfs  476G  181G  296G  38% /run
tmpfs          tmpfs  476G  181G  296G  38% /run/lock
tmpfs          tmpfs  476G  181G  296G  38% /run/shm
tmpfs          tmpfs  476G  181G  296G  38% /run/user
cgroup         tmpfs  476G  181G  296G  38% /sys/fs/cgroup
/dev/sda4     ext4 476G  181G  296G  38% /mnt/c

Een ander nuttig voorbeeld om alle bestanden en mappen (behalve gekoppelde bestandssystemen) groter dan 1 GB op het systeem gesorteerd op grootte en uitvoer opgeslagen in een tekstbestand genaamd in de huidige map. Algemene virtuele bestandssystemen zoals /proc zijn ook uitgesloten. Je hebt root toegang nodig voor deze commando.

sudo du -ahx --exclude=/{proc,sys,dev,run}/* -t 1G /*/ | sort -hr > $(hostname -f)-diskusage-$(date +%Y%m%d).txt

Conclusie

In dit artikel hebben we gezien hoe we de programma’s df en du kunnen gebruiken om te meten hoe vol onze schijven zijn.  De uitvoer van df is meestal erg kort en heeft vaak al een goede volgorde. Bij het gebruik van du is het meestal verstandig om een aantal flags te gebruiken om overbodige informatie te verwijderen. Beide programma’s zijn handig om de schijfgebruik te controleren en te begrijpen wat er al wordt gebruikt op jouw Linux- en Mac-systemen.

Was dit artikel nuttig?
Niet leuk 0
Weergaven: 1935

Reader Interactions

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *