Miesto na disku: kam sa stráca
Ako nájsť, čo zaplnilo disk, prečo je zmazaný, ale otvorený súbor nebezpečný, čo sa dá bezpečne vyčistiť a prečo môže ukazovateľ zaplnenia v ovládacom paneli ukazovať nesprávne.
Aktualizované 23. augusta 2026
Miesto na disku sa minie a vyzerá to ako čokoľvek: databáza nezapisuje, stránka vracia chybu, kontajnery sa reštartujú. Disk VDS má od 40 GB v základnej triede až po 250 GB v najvyššej triede a takmer vždy sa zaplní tými istými vecami.
Prvé príkazy
df -h
df -i
sudo du -x -h -d1 / | sort -h | tail -15
Nevynechaj df -i: môžeš mať miesto, ale minú sa ti inody — potom dostaneš „disk full“ s voľnými gigabajtmi. Na vine bývajú zvyčajne milióny malých cache súborov.
Potom sa ponor do najväčšieho adresára:
sudo du -x -h -d1 /var | sort -h | tail
sudo du -x -h -d1 /var/lib | sort -h | tail
Prepináč -x udrží počítanie v rámci jedného súborového systému a nezablúdi do pripojených adresárov.
Bežní vinníci
| Čo | Ako to skontrolovať | Čo urobiť |
|---|---|---|
| Logy kontajnerov | du -sh /var/lib/docker/containers/*/*-json.log | Obmedz veľkosť, pozri logy |
| Obrázky a build cache | docker system df | docker image prune, docker builder prune |
| Systémový journal | journalctl --disk-usage | journalctl --vacuum-size=200M |
Staré jadrá v /boot | df -h /boot | apt autoremove --purge |
| Cache balíkov | du -sh /var/cache/apt | apt clean |
| Kópie ponechané na mieste | du -sh /backup | Presuň ich mimo servera, pozri iné umiestnenie |
| Nahrané súbory používateľov | du -sh /var/www/uploads | Úložisko mimo alebo väčší disk |
Vymazaný súbor, ktorý stále zaberá miesto
Klasická hádanka: du ukazuje 5 GB, df ukazuje 30 GB využitého miesta. To znamená, že súbor bol vymazaný, ale proces ho stále drží otvorený a miesto sa neuvoľní až do reštartu.
sudo lsof +L1 | head -20
Výstup zobrazí procesy a veľkosti. Riešením je reštartovať vinníka:
sudo systemctl restart <service>
docker compose restart <service>
Nikdy neuvoľňuj miesto pomocou
rmna logovom súbore, ktorý sa používa. Správny spôsob je skrátiť ho:sudo truncate -s 0 /var/log/big.log. Vymazanie nechá miesto obsadené a navyše prídeš o log.
Kruh využitia v ovládacom paneli
Na karte „Prehľad“ je kruh využitia disku. Počíta sa cez hosťovského agenta qemu-guest-agent. Ak je agent odstránený alebo nebeží, údaje sa neaktualizujú — panel zobrazí príkaz na inštaláciu. Na kontrolu vnútri stroja:
systemctl status qemu-guest-agent
Údaje agenta a df -h by sa mali zhodovať. Rozdiel najčastejšie znamená, že časť miesta zaberá samostatne pripojená partícia — pozri partície a súborové systémy.
Prevencia
Nastav plánovanú úlohu s čistením a upozornením:
#!/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
Prah 85 % ti dá priestor na reakciu. Nemôžeš čakať na 100 %: keď je disk plný, niektoré služby nedokážu zapísať ani log o tom, čo sa stalo.
Ak nie je miesto vôbec
- Uvoľni pár gigabajtov rýchlymi krokmi:
journalctl --vacuum-size=100M,apt clean,docker builder prune -f. - Nájdi skutočnú príčinu pomocou príkazov vyššie — inak sa všetko zopakuje o týždeň.
- Ak údaje naozaj narástli, musíš zvýšiť disk prechodom na vyššiu triedu. Zníženie nie je dostupné: disk sa nedá zmenšiť.