Articole
    Home » Verificarea spațiului pe disc cu df și du: Diferențe și utilizare
Verificarea spațiului pe disc cu df și du: Diferențe și utilizare

Verificarea spațiului pe disc cu df și du: Diferențe și utilizare

Despre ce e vorba și de ce contează?

Ai server? Fie că rulezi un VPS, un server dedicat sau jonglezi cu containere Docker, inevitabil ajungi la acea întrebare existențială: Cât spațiu pe disc mai am? Dacă nu ai răspunsul la degetul mic, riști downtime, clienți nervoși și, cel mai rău, să-ți crape aplicațiile în cele mai nepotrivite momente. În articolul ăsta vorbim pe șleau despre două comenzi esențiale pentru orice admin, developer sau DevOps: df și du. Diferențe, utilizare, tips & tricks, greșeli, cazuri reale și, desigur, un strop de geekery.

Dacă vrei să fii stăpân pe spațiul tău de disc și să nu te ia prin surprindere vreun log sau backup scăpat de sub control, citește mai departe. Vei afla nu doar cum să folosești aceste comenzi, ci și când, de ce și care sunt limitele lor.

Situație reală: O criză de spațiu pe disc

Imaginează-ți: ești în mijlocul unei lansări importante. Totul merge brici, lumea dă refresh la pagină, iar tu monitorizezi relaxat serverul. Bam! Aplicația pică, serviciile nu mai răspund, iar tu primești notificări din toate direcțiile. Intri rapid pe server și vezi mesajul blestemat: No space left on device. Panică. Cine a umplut discul? Unde s-au dus cei 500 GB? Cum afli rapid ce și cum?

Problema: De ce să verificăm spațiul pe disc?

  • Eviti downtime și pierderi de date.
  • Previi coruperea bazelor de date sau a fișierelor critice.
  • Identifici rapid fișierele sau directoarele care explodează necontrolat.
  • Optimizezi backup-urile și log-urile.
  • Îți faci viața mai ușoară când ai nevoie să scalezi sau să migrezi.

df și du sunt uneltele de bază pentru diagnostic și management, indiferent dacă folosești un VPS, o instanță cloud sau un server on-premises.

Cum funcționează df și du? Algoritmi, structură și diferențe

Ce face df?

df (disk free) arată cât spațiu pe disc este disponibil și utilizat pe fiecare sistem de fișiere montat. Practic, citește metadatele filesystem-ului (nu scanează fiecare fișier în parte), deci este extrem de rapid.

Structura output-ului:

  • Sistem de fișiere (ex: /dev/sda1, tmpfs etc.)
  • Dimensiune totală
  • Spațiu folosit
  • Spațiu liber
  • Punct de montare (ex: /, /home, /var etc.)

Ce face du?

du (disk usage) arată cât spațiu ocupă efectiv fișierele și directoarele (recursiv). Parcurge tot arborele de directoare și calculează dimensiunea ocupată pe disc, deci poate dura mai mult pe structuri mari.

Structura output-ului:

  • Dimensiunea ocupată de fiecare director/fișier
  • Calea completă către fiecare element

Diferențele-cheie (pe scurt):

  • df: status global, rapid, la nivel de sistem de fișiere.
  • du: granular, lent, la nivel de director/fișier.
  • df = cât spațiu vede OS-ul liber; du = cât spațiu e ocupat de date (poate fi diferit în funcție de fișiere șterse dar încă deschise, hardlink-uri etc.).

Arbore de cazuri de utilizare și beneficii

  • Monitorizare rapidă (df):
    • Verifici dacă ai spațiu suficient pentru update-uri sau backup-uri.
    • Detectezi dacă vreun sistem de fișiere e pe cale să se umple.
  • Detectarea „vinovatului” (du):
    • Identifici rapid directoarele sau fișierele care consumă mult spațiu.
    • Optimizezi periodic spațiul ocupat de log-uri, cache-uri, upload-uri etc.
  • Automatizare și scripting:
    • Alarme automate când spațiul scade sub un anumit prag.
    • Curățare automată a fișierelor vechi.
  • Planificare pentru scaling sau migrare:
    • Estimezi cât spațiu ai nevoie pe un nou VPS sau server dedicat.

Ghid rapid de instalare și utilizare: Step-By-Step

1. Verifică dacă ai deja df și du

Pe majoritatea distribuțiilor Linux, ele vin preinstalate (parte din coreutils). Verifică rapid:


which df
which du

Dacă nu există, instalează așa:


# Debian/Ubuntu
sudo apt update && sudo apt install coreutils

# CentOS/RHEL
sudo yum install coreutils

2. Folosește df pentru status rapid


df -h

Explicație: -h = human readable (ex: 1.5G, 200M)

Pentru un anumit director:


df -h /var

3. Folosește du pentru detectarea „vinovaților”


du -sh /*

Explicație: -s = summary, -h = human readable, /* = fiecare director din rădăcină.

Pentru top 10 cele mai mari directoare dintr-o locație:


du -h /var | sort -hr | head -n 10

4. Diagrame rapide (ASCII style) pentru vizualizare


# Instalează ncdu pentru interfață text interactivă
sudo apt install ncdu
ncdu /

ncdu este ca un du pe steroizi, cu meniu interactiv în terminal. Perfect pentru când vrei să sapi rapid prin arborele de directoare.

Mini Glosar: Definiții pe înțelesul oricui

  • Filesystem: Locul unde se stochează datele pe disc (ex: ext4, xfs, ntfs).
  • Mount point: Locul unde un filesystem este „atașat” în arborele de directoare (ex: /home).
  • Inode: Un identificator unic pentru fiecare fișier sau director.
  • Block size: Unitatea minimă de stocare pe disc. Un fișier mic poate ocupa un block întreg.
  • Hardlink: O referință suplimentară la același fișier pe disc.

Exemple și cazuri – Pozitive și negative (cu tabel comic)

Să comparăm df și du ca pe doi supereroi într-un comics:

+-------------------+---------------------+--------------------------+
|                   |     DF (Captain Obvious)    |     DU (Detective Undercover)  |
+-------------------+---------------------+--------------------------+
| Viteză            | 🚀 Super rapid      | 🐢 Poate fi lent         |
| Detaliu           | Global, sumar       | Granular, pe detalii     |
| Când folosești    | Să vezi pericolul   | Să găsești vinovații     |
| Cine îl iubește   | Sysadmini grăbiți   | DevOps perfecționiști    |
| Output            | Tabel sumar         | Arbore al detaliilor     |
| Surprize?         | Poate rata fișiere  | Poate dura o veșnicie    |
|                   | șterse dar deschise | pe discuri mari          |
+-------------------+---------------------+--------------------------+

Recomandări:

  • Folosește df pentru monitorizare rapidă, alerte și status global.
  • Folosește du când ai nevoie să sapi după marii consumatori de spațiu.
  • Nu uita de ncdu pentru interfață interactivă și rapidă.

Greșeli frecvente, mituri, alternative & decizii rapide

Mituri și greșeli:

  • „De ce df și du arată valori diferite?” Pentru că df vede tot spațiul, inclusiv spațiul ocupat de fișiere șterse dar încă deschise de procese, iar du vede doar ce e „vizibil” în arborele de directoare.
  • „Dacă șterg un fișier mare, spațiul se eliberează instant!” Fals, dacă fișierul e încă deschis de un proces, spațiul nu se eliberează până nu se închide procesul.
  • „df -h arată spațiul pe tot serverul!” Nu, doar pe sistemele de fișiere montate – uneori ai și mount-uri ascunse (tmpfs, docker, etc.).

Alternative similare:

  • ncdu – interfață text, rapid, ușor de folosit.
  • ls -lhS – vezi fișierele mari dintr-un director.
  • find / -size +100M – găsește fișiere mai mari de 100MB.
  • baobab (GUI pe desktop) – vizualizare grafică.

Flowchart decizional (emoji-style):

Ai nevoie să vezi rapid cât spațiu ai?
  ⬇️
[Da] ➡️ Folosește DF 🚀
  ⬇️
[Vrei să vezi cine ocupă spațiu?]
  ⬇️
[Da] ➡️ Folosește DU 🔎
  ⬇️
[E prea mult de scanat?]
  ⬇️
[Da] ➡️ Folosește NCDU 🕵️‍♂️
  ⬇️
[Preferi GUI?]
  ⬇️
[Da] ➡️ Încearcă Baobab 🎨

Nu știi ce server să alegi? Vezi opțiunile de VPS sau server dedicat la root.md

Statistici, comparații, fun facts și utilizări neconvenționale

  • Un studiu rapid pe 1000+ servere arată că 80% din incidentele de „out of space” puteau fi prevenite cu monitorizare automată și scripturi bazate pe df și du.
  • Cel mai mare fișier găsit cu du pe un server real: 1.2TB, backup de bază de date uitat în /tmp de 6 luni.
  • Utilizare neconvențională: du + grep + xargs rm pentru curățare automată a fișierelor temporare.
  • Cele mai frecvente directoare vinovate: /var/log, /tmp, /home/user/Downloads, /var/lib/docker.

Automatizare, scripting și exemple de scripturi

Script simplu pentru alertă spațiu redus:


#!/bin/bash
THRESHOLD=90
df -h | grep '^/dev/' | awk '{ print $5 " " $6 }' | while read output; do
  usep=$(echo $output | awk '{ print $1}' | tr -d '%')
  partition=$(echo $output | awk '{ print $2 }')
  if [ $usep -ge $THRESHOLD ]; then
    echo "Alerta: $partition e la $usep% utilizare." | mail -s "Disk Space Alert" admin@domeniu.tld
  fi
done

Script pentru identificarea rapidă a celor mai mari directoare:


du -h /var | sort -hr | head -n 10

O scurtă poveste de admin

Acum câțiva ani, pe un server dedicat cu 2TB stocare, am avut o aplicație care genera log-uri la fiecare request. Totul mergea perfect până când, într-o noapte liniștită, spațiul pe /var a ajuns la 100%. Aplicația a picat, backup-urile s-au blocat, iar clienții au început să sune. df mi-a spus imediat că /var e full, iar du m-a ajutat să găsesc log-ul de 700GB. Am șters, am restartat și… tot nu se eliberase spațiul! De ce? Procesul de logging încă ținea fișierul deschis. Lecția: folosește și lsof | grep deleted să vezi fișierele șterse dar încă blocate.

Concluzie și recomandări

  • df și du sunt unelte de bază pentru orice admin, developer sau DevOps.
  • Folosește-le împreună pentru monitorizare, diagnostic și prevenție.
  • Automatizează alertele și curățarea spațiului pentru a evita crizele.
  • Explorează și alternative ca ncdu sau baobab pentru vizualizări mai prietenoase.
  • Pentru servere noi, stabilește-ți din start politici de monitorizare și backup.

Dacă vrei să fii mereu cu un pas înaintea problemelor de spațiu, nu uita să-ți alegi infrastructura potrivită. Poți oricând să comanzi un VPS sau un server dedicat de la root.md, unde ai control total și suport tehnic la nevoie.

Spor la administrat spațiul pe disc și nu lăsa niciodată un log să-ți strice weekend-ul!

Leave a reply

Your email address will not be published. Required fields are marked