Communityoplossing

Gebruik ncdu op CasaOS om te achterhalen wat je opslagruimte opvult

A 2024 CasaOS tutorial introduced ncdu as a quick way to find large folders and mystery disk usage.

Gebruik ncdu op CasaOS wanneer je wilt vinden welke mappen daadwerkelijk schijfruimte innemen, maar scan het juiste hostpad—niet alleen een kleine containerbestandssysteem. Voor huidige Linux-systemen biedt het upstreamproject statische binaries en is ncdu 2.x de snelste manier voor interactieve analyse van schijfgebruik.

De BigBear-tutorial uit 2024 is nuttig als introductie, maar je hebt geen speciale container uit de app store nodig om ncdu te gebruiken. Voor het oplossen van opslagproblemen is een hostterminal of een container met een expliciet gekoppeld, alleen-lezen doel transparanter.

Waar ncdu goed voor is

ncdu is een interactieve schijfgebruikanalyzer. Het scant mappen, sorteert ze op grootte en laat je in grote mappen doorklikken zonder handmatig aan elkaar gekoppelde du opdrachten.

Op de huidige ncdu-projectpagina staan statische ncdu 2.x-binaries voor x86_64, ARM en AArch64.

Begin met het bestandssysteem dat daadwerkelijk vol is

Uitvoeren:

df -h

Identificeer de koppeling met weinig vrije ruimte. Scan vervolgens die koppeling in plaats van ncdu blind uit te voeren vanuit /.

Scan een CasaOS-datapad

Typische voorbeelden:

ncdu /DATA
ncdu /media
ncdu /var/lib/docker

Het exacte pad hangt af van je installatie. Als Docker of AppData de vermoedelijke bron is, inspecteer die locatie rechtstreeks.

Wees voorzichtig bij het scannen van Docker-internals

/var/lib/docker bevat imagelagen, beschrijfbare lagen, logs en metagegevens. ncdu kan laten zien welke mappen groot zijn, maar het handmatig verwijderen van willekeurige overlaybestanden kan de Docker-status beschadigen.

Gebruik Docker-bewuste opschoonopdrachten voor images, containers en caches in plaats van interne laagmappen met ncdu te verwijderen.

ncdu in een container heeft beperkte zichtbaarheid

Als je ncdu in een container uitvoert, ziet het alleen de paden die je in die container koppelt. Een scan van de containerroot zegt vrijwel niets over het totale CasaOS-schijfgebruik.

Als je de voorkeur geeft aan Docker, koppel je het gewenste hostpad alleen-lezen en scan je die koppeling. Houd verwijderen uitgeschakeld tijdens het diagnosticeren.

Zoek eerst grote AppData-mappen

Zelfgehoste apps kunnen thumbnails, logs, caches, databases en gedownloade metagegevens opstapelen. De Docker-opslaghandleiding legt uit waarom AppData op de host kan groeien, zelfs wanneer containerimages klein zijn.

Veelvoorkomende bronnen van groot ruimtegebruik

  • cache voor het transcoderen van media;
  • JSON-logboeken van containers;
  • databasebestanden;
  • fotominiaturen en indexen voor machine learning;
  • onvoltooide mappen van downloadclients;
  • oude back-ups;
  • Docker-images en buildcache.

Verwijder niets voordat je weet wie de map beheert

Gebruik ncdu om het grote pad te identificeren en bepaal vervolgens welke toepassing de eigenaar ervan is. Stop de relevante toepassing voordat je gegevens verwijdert die actief kunnen worden weggeschreven.

Gebruik uitsluitingen om grote scans nuttiger te maken

Op een server met gekoppelde netwerkshares, back-ups of externe schijven kan het scannen van de verkeerde boomstructuur lang duren en niet-gerelateerde opslag in één resultaat samenvoegen. Begin bij het exacte mountpunt dat wordt weergegeven door df -h en voorkom dat je externe mounts meeneemt, tenzij die het probleem vormen.

Voor herhaalde probleemoplossing kan ncdu scaninformatie exporteren, zodat je groei in de tijd kunt vergelijken in plaats van tijdens elke sessie een enorm bestandssysteem opnieuw te scannen.

Begrijp verwijderde maar geopende bestanden

Soms df een vol bestandssysteem meldt terwijl ncdu niet genoeg zichtbare bestanden kan vinden om dit te verklaren. Een oorzaak kan zijn dat een proces een al verwijderd bestand geopend houdt. De directory-entry is verdwenen, maar de blokken blijven toegewezen totdat het proces het bestand sluit.

Wanneer het ncdu-totaal en df aanzienlijk verschillen, controleer dan met een tool zoals of er geopende verwijderde bestanden zijn lsof +L1 als het op de host beschikbaar is. Door de verantwoordelijke service opnieuw te starten, kan de ruimte worden vrijgemaakt zodra je begrijpt wat er aan de hand is.

Gebruik ncdu als meetinstrument, niet als opruimbeleid

Een grote cache kan veilig worden verwijderd, terwijl een database-map van vergelijkbare grootte kritiek kan zijn. De waarde van ncdu is dat het laat zien waar de ruimte naartoe is gegaan; de verantwoordelijke toepassing moet bepalen hoe die ruimte wordt vrijgemaakt.

Veelgestelde vragen

Kan ncdu bestanden verwijderen?

Ja, maar wees voorzichtig met verwijderen. Gebruik voor Docker-internals, databases en door apps beheerde gegevens bij voorkeur de eigen opruimworkflow van de toepassing.

Waarom toont ncdu minder ruimtegebruik dan df?

Mogelijke oorzaken zijn verwijderde maar geopende bestanden, ontoegankelijke mappen, bestandssysteemmetadata, snapshots of gegevens buiten de gescande mount.

Heb ik BigBearCasaOS nodig om ncdu te installeren?

Nee. Het is één verpakkingsoptie. De huidige upstream-versie biedt ook zelfstandige statische binaire bestanden.

Waar moet ik eerst scannen?

Gebruik df -h om de volledige mount te identificeren en vervolgens dat exacte pad met ncdu te scannen.