Sajt prestane raditi, email ne stiže, baza ne piše. Logujesh se u cPanel i vidiš poruku "Disk usage 100%" ili još gore — sve je prazno, ali sustav i dalje kaže da je puno. To je tipičan inode limit, ne disk space. Razlika je važna jer rješavanje ide u drugom smjeru.
Ovaj vodič vodi te kroz oba scenarija — kako brzo dijagnosticirati problem, gdje obično leži uzrok, i kako sigurno osloboditi prostor bez gubitka podataka.
Prvo razlikuj: disk full vs inode full
- Disk full = nemaš više GB-a. Logovi su narasli, baza preopterećena, backup ostao, video uploadovi.
- Inode full = nemaš više slobodnih "slotova" za fajlove, ali GB-i mogu i biti slobodni. Tipično: milijuni malih cache fajlova, email queue, session fajlovi, ili WP plugin koji generira tisuće thumbnailova.
U cPanelu na lijevom sidebaru vidiš oba broja: Disk Usage i File Usage (Inodes). Ako je drugi crveno blizu limita — to je problem.
Iz SSH-a:
# Disk usage
df -h
du -sh ~/* | sort -hr | head -20
# Inode usage
df -i
find ~ -xdev -printf '%h\n' | sort | uniq -c | sort -rn | head -20
Prva komanda za inodes pokazuje koliko slobodnih ostalo. Druga pronalazi koje direktorije imaju najviše fajlova — to je obično krivac.
Disk full — kako pronaći i osloboditi
Tipični krivci (po čestoći):
- Stari backup-ovi — provjeri
~/backups/,~/.softaculous_backups/, custom backup direktorije. Zna biti 50%+ tvog prostora. - Email storage — IMAP mailboxovi koji se ne čiste. Provjeri
~/mail/*/curi~/mail/*/new. Velike privitke u inbox-ovima. - Logovi —
~/access-logs/,~/logs/,~/public_html/error_log. Mogu narasti na GB-e ako se ne rotiraju. - WordPress media uploads —
~/public_html/wp-content/uploads/. Originali + svih 8-15 thumbnail veličina za svaku sliku. - Database export-i —
~/*.sql,~/*.sql.gzkoje je netko ostavio. - Cache direktoriji —
wp-content/cache/,wp-content/uploads/cache/, Drupalsites/default/files/css/, Magentovar/cache/. - Node modules — ako imaš Node aplikacije,
node_modulesmože biti par GB-a po projektu.
Brzo SSH search za top 20 najvećih fajlova/direktorija:
# 20 najvećih direktorija
du -h ~ | sort -hr | head -20
# 20 najvećih pojedinačnih fajlova
find ~ -type f -size +50M -exec ls -lh {} \; | sort -k5 -hr | head -20
Sigurno brisanje:
- Backup-i:
rm ~/backups/*.tar.gz— ali prvo provjeri da imaš noviji. - Error logovi:
truncate -s 0 ~/public_html/error_log(bolje nego rm jer ne mijenja permissions). - Cache: kroz WP admin → WP Rocket → Clear cache, ili komandno
wp cache flush. - Email: kroz Webmail → mark stare kao read → bulk delete. Za korisnike koji koriste Outlook/Thunderbird, postavi auto-arhiv pravilo lokalno.
Inode full — kako pronaći i osloboditi
Inode limit je tipično 250.000 – 600.000 na shared hostingu. Kad ga probiješ:
Top 20 direktorija po broju fajlova:
find ~ -xdev -type d -printf '%p\n' | xargs -I {} sh -c 'echo "$(find "{}" -maxdepth 1 -type f | wc -l) {}"' | sort -rn | head -20
Tipični inode hogi:
- Email cur/new direktoriji — svaki email = 1 inode. Stari nalog s 50.000 mailova = 50.000 inodea.
- WP transient i session fajlovi — neki pluginovi ne čiste expired transients. Pokreni
wp transient delete --all --expired. - Cache — page cache često ima 1 fajl per URL × varijacija. Lako 100k+ fajlova za veći sajt.
- WP thumbnail generations — 1 upload × 12 veličina × 50.000 uploadova = 600.000 inodea samo za thumbnailove.
- Composer / npm —
vendor/inode_modules/imaju desetke tisuća malih fajlova. - Mail queue —
/var/spool/exim/ako server šalje bulk mailove koji nisu uspjeli izaći.
Sigurno brisanje inode-bombi:
- Cache: u WP plugin caches ima "clear all" gumb. Iz SSH-a:
rm -rf ~/public_html/wp-content/cache/*(pa neka se ponovo izgradi). - Stare WP thumbnailove: koristi plugin Force Regenerate Thumbnails ili
wp media regenerate --delete-unknown. - Composer/npm:
rm -rf node_modules,composer install --no-devumjesto full install. - Email: prebaci stare account-e na vanjski mail (Gmail Workspace, MS365) i pobriši lokalne kopije.
Spriječi da se opet dogodi
- Postavi log rotation u
~/.cpanel/rotate-logsili kroz hosting podršku. - JetBackup retention postavi da automatski briše starije od 14 dana.
- WP plugin za cleanup: WP-Optimize, Advanced Database Cleaner sa zakazanim čišćenjem transient-a.
- Monitoring: cPanel Disk Usage alert pri 80% kapaciteta — javi se podršci da uključi.
- WP uploads disciplina — kompresij slika prije uploada (TinyPNG, Squoosh, ili plugin Smush).
- Email retention politika — staro od 12 mjeseci auto-archive lokalno, briši na serveru.
Kad si potpuno blokiran
Disk je full i ne možeš ni u cPanel jer session fajlovi ne mogu se zapisati? Klasičan deadlock. Rješenja:
- SSH direktno i pokreni jednu od cleanup komandi gore. SSH sesija ne zahtjeva pisanje na disk za login.
- Pošalji hitan ticket WMD-u — možemo ekstendati kvotu na sat (privremeno) da se možeš ulogirat i očistit.
- FTP/SFTP radi i kad cPanel padne — možeš brisati fajlove iz FileZille.
Kako WMD pristupa ovome
Naši paketi imaju CloudLinux LVE limite koji "izoluju" tvoj account — disk/inode problem ne pada na druge klijente. Plus JetBackup je odvojen od kvote pa backup-i ne troše tvoj prostor. Disk i inode alerts šaljemo proaktivno na 75% — često riješimo zajedno s tobom prije nego sajt padne.
Najčešća pitanja
Mogu li povećati inode limit?
Na shared paketu rijetko (LVE granica). Bolje je počistit ili prijeći na VPS. Na WMD-u pošalji ticket pa zajedno odlučimo isplati li se cleanup ili upgrade.
Što je s emailom kad obrišem?
Ako koristi IMAP, lokalni klijent (Outlook/Thunderbird/iPhone) može imati lokalnu kopiju. Provjeri prije brisanja je li sve sinkronizirano.
Mogu li koristit rm -rf bez straha?
Ne. Uvijek prvo ls pa onda rm. rm -rf ~ obriše ti cijeli home u sekundi. JetBackup će spasit, ali sat outage je realnost.
Kako dobit alert prije nego se napuni?
U cPanelu Contact Information postavi prag (75%, 90%). cPanel ti šalje email kad pređe.