Linux sistemlerdeki inode problemi !

Geçenlerde değil, tam olarak bugün, evospor.com beni çıldırtmış durumdaydı. Sitenin kurulu olduğu server’ın hard diskinde yer görünüyor fakat yer yok hatası alıp duruyordum !

Diskinizde yer olmasına rağmen No space left on device hatası alıyorsanız tam aradığınız yerdesiniz.

root@evospor:~# df -h
Filesystem                 Size  Used Avail Use% Mounted on
rootfs                      40G   11G   27G  29% /
udev                        10M     0   10M   0% /dev
tmpfs                      202M  148K  202M   1% /run
/dev/disk/by-label/DOROOT   40G   11G   27G  29% /
tmpfs                      5.0M     0  5.0M   0% /run/lock
tmpfs                      403M     0  403M   0% /run/shm

Yukarıda gördüğünüz gibi df -h komutunu çalıştırdığımızda, herhangi bir doluluk görmüyoruz, fakat !

root@evospor:~# df -ih
Filesystem                Inodes IUsed IFree IUse% Mounted on
rootfs                      2.5M  2.5M  0K    100% /
udev                        251K   274  250K    1% /dev
tmpfs                       252K   192  252K    1% /run
/dev/disk/by-label/DOROOT   2.5M  114K  2.4M    5% /
tmpfs                       252K     1  252K    1% /run/lock
tmpfs                       252K     2  252K    1% /run/shm

df -i komutunu çalıştırdığınızda diskinizin dolu olduğunu görüyorsanız inode larınızı doldurmuşsunuz demektir.

inode nedir ?

inode lar dosyalarınızın bilgilerini tutan veri yapılarıdır. Linux sisteminiz üzerinde bulunan dosyaların kime ait olduğunu, oluşturulma tarihini filan bu birim sağlıyor uzun lafın kısası.

Çözüm için ne yapmam lazım ?

Sisteminizde yer alan istenmeyen dosyaları bulup silin veya başka bir server’a taşıyın.

Sisteminizde yer alan istenmeyen çok büyük boyutlu dosyalarınızı silin veya başka bir server’a taşıyın.

Çok fazla dosya olan dizinleri nasıl bulurum ?

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

yukarıdaki satırı terminalinize yapıştırın. Aşırı dosya olan kabak gibi gözünüze çarpacaktır. Misal /var dizinini gözünüze kestirdiyseniz, işlemi bir tık içeri alıp

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

bir tık daha derinde aramanızı yapabilirsiniz. Böyle ilerleyerek sorunun tam olarak nerede olduğunu tespit edebilirsiniz.

Umarım bu yazı da bir gün birilerini yardımcı olur, saç baş yolmaktan kurtarır 😉

3 Yorum
  1. 21 Temmuz 2016
  2. 21 Temmuz 2016
  3. 29 Haziran 2017

Yorum Bırak

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir