Skip to content
VDS · Bekapi i disk

Prostor na disku: gde odlazi

Kako da nađeš šta je napunilo disk, zašto je obrisana ali otvorena datoteka opasna, šta je bezbedno očistiti i zašto prsten zauzetosti u panelu može da prikaže pogrešno.

Ažurirano 23. avgust 2026.

Ponestaje ti prostora — to je ispad koji izgleda kao bilo šta: baza ne može da upiše, sajt vraća grešku, kontejneri se restartuju. VDS disk ide od 40 GB na ulaznom nivou do 250 GB na najvišem nivou, i skoro uvek se puni istim stvarima.

Prve komande

df -h
df -i
sudo du -x -h -d1 / | sort -h | tail -15

Ne preskači df -i: možeš imati prostora, ali ostati bez inoda — tada dobiješ „disk pun“ sa slobodnim gigabajtima. Krivac su obično milioni malih fajlova keša.

Zatim se spusti u najveći direktorijum:

sudo du -x -h -d1 /var | sort -h | tail
sudo du -x -h -d1 /var/lib | sort -h | tail

Flag -x zadržava brojanje unutar jednog fajl sistema i ne luta u montirane direktorijume.

Uobičajeni krivci

ŠtaKako da proverišŠta da uradiš
Logovi kontejneradu -sh /var/lib/docker/containers/*/*-json.logOgraniči veličinu, vidi logove
Slike i keš build-adocker system dfdocker image prune, docker builder prune
Sistemski žurnaljournalctl --disk-usagejournalctl --vacuum-size=200M
Stara jezgra u /bootdf -h /bootapt autoremove --purge
Keš paketadu -sh /var/cache/aptapt clean
Kopije koje su ostale na mestudu -sh /backupPrebaci ih van lokacije, vidi drugu lokaciju
Otpremanja korisnikadu -sh /var/www/uploadsSkladište napolju ili veći disk

Obrisan fajl koji i dalje zauzima prostor

Klasična zagonetka: du pokazuje 5 GB, df pokazuje 30 GB iskorišćeno. To znači da je fajl obrisan, ali ga proces i dalje drži otvorenim, i prostor se neće osloboditi do restarta.

sudo lsof +L1 | head -20

Izlaz će prikazati procese i veličine. Rešenje je restart krivca:

sudo systemctl restart <service>
docker compose restart <service>

Nikad ne oslobađaj prostor sa rm nad log fajlom koji je u upotrebi. Ispravan način je da ga skratiš: sudo truncate -s 0 /var/log/big.log. Brisanje će ostaviti prostor zauzetim i dodatno će te koštati loga.

Prsten potrošnje u panelu

Na kartici „Pregled“ nalazi se prsten potrošnje diska. Izračunava se preko gostujućeg agenta qemu-guest-agent. Ako je agent uklonjen ili ne radi, podaci se neće ažurirati — panel će prikazati komandu za instalaciju. Da proveriš unutar mašine:

systemctl status qemu-guest-agent

Očitavanja agenta i df -h treba da se poklapaju. Neslaganje najčešće znači da je nešto prostora zauzeto u zasebno montiranoj particiji — vidi particije i fajl sisteme.

Prevencija

Podesi zakazani zadatak sa čišćenjem i upozorenjem:

#!/bin/bash
USED=$(df --output=pcent / | tail -1 | tr -dc '0-9')
if [ "$USED" -gt 85 ]; then
  journalctl --vacuum-size=200M
  apt clean
  docker image prune -f
  echo "Disk is ${USED}% full" | mail -s "VDS: low disk space" you@example.com
fi

Prag od 85% daje ti prostora da reaguješ. Ne možeš da čekaš 100%: kada je disk pun, neke usluge neće moći čak ni da upišu log o tome šta se dogodilo.

Ako uopšte nema prostora

  1. Oslobodi par gigabajta brzim merama: journalctl --vacuum-size=100M, apt clean, docker builder prune -f.
  2. Nađi pravi uzrok pomoću komandi iznad — inače će se sve ponoviti za nedelju dana.
  3. Ako su podaci zaista porasli, treba da povećaš disk prelaskom na viši nivo. Spuštanje nije dostupno: disk ne može da se smanji.