Na serveru ponestaje slobodnog prostora – Inodes
» » Na serveru ponestaje slobodnog prostora – Inodes

Na serveru ponestaje slobodnog prostora – Inodes

postavljeno u: Webtech | 0

Pre par dana mi se dogodila zanimljiva pojava i izazvala problem koji sam morao da rešim, a u startu nisam znao kako.
Sa jednog od iznajmljenih servera mi je stigla poruka kako ponestaje mesta na disku. Bio sam siguran da je to nemoguće jer je server sa diskom od 50GB, a na istom ima samo par sajtova koji i nisu nešto obimni sa sadržajem.
U poruci koju sam dobio sa servera je pisao da je disk na njemu 87% zauzet, ali kada sam se logovao preko SSH na server i uneo komandu

$ df

dobio sam informaciju da je disk zauzet 32%. Zbunjen sam bio u potpunosti, pa sam počeo istraživati o čemu se tu zapravo radi.
Ono što nisam znao do tada je šta predstavlja “Inodes”.
Inodes je struktura podataka u fajlsistemu na linuksu i ostalim uniksolikim operativnim sistemima, koja skladišti sve podatke o fajlu osim naziva i samog sadržaja.
Problem nastaje zbog velike količine fajlova. U mom slučaju se to dogodilo za jedim od naloga elektronske pošte na koji je svakih minut stizao raport od CRON-a sa jednog od sajtova. Da jebe zec zeca, za skoro godinu dana, nakupilo se u tom jednom folderu preko 450K fajlova manjih od KB. To doduše nisam znao u početku, a nisam znao ni kako to da otkrijem. Zato i pišem ovaj tekst, da prenesem informaciju koju sam našao o tehnici pronalaženja takvih stvari i otklanjanju sličnih problema.

Nakon logovanja na server putem SSH proveri koliko ima mesta na disku:

$ df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/simfs 52428800 14509792 37919008 28% /
none 4194304 4 4194300 1% /dev

Zatim proveri koliko ima dostupnih Inodes-a:

$ df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/simfs 1000000 889315 110685 89% /
none 1048576 154 1048422 1% /dev

Što je veća cifra u polju IUse% to znači da na disku postoji ogroman broj fajlova. Najčešće zbog toga i pokazuje da nema mesta na disku.
Potrebno je naći sve te fajlove, verovatno vrlo male, koje je najverovatnije napravila neka skripta na serveru.

Kucaj komandu:

$ for i in /*; do echo $i; find $i |wc -l; done

Ova komanda će ti prikazati listu foldera sa brojem fajlova u njima.

Komadu možes i da izmeniš malo, da pišeš tačan folder za čije stanje želiš detaljnije informacije:

$ for i in /home/*; do echo $i; find $i |wc -l; done

Kad nađeš u kom se folderu nalaze ti malo fajlovi kojih ima puno sve što treba da uradiš je da ih izbrišeš:

$ sudo rm -rf /home/USER/FOLDER_SA_FAJLOVIMA

Kapiram da nisi retard pa da znaš da treba da zameniš putanju foldera iz primera komande za brisanje fajlova u putanju sa tvog servera.

PRE BRISANJA VIŠE PUTA PROVERI SVE, A NIKAKO NEMOJ DA BRIŠES STVARI IZ SISTEMSKIH FOLDERA

Kada si sve završio pogledaj još jednom šta će ti prikazati komanda df -i

$ df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/simfs 1000000 389315 610685 39% /
none 1048576 154 1048422 1% /dev

Follow marcetin:

Latest posts from