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 --total
flag 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.
Geef een reactie