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 😉
4 TB HDD aldım, USB yolu ile bağladım fakat Windows 1.7 TB’ını görüyor. Linux’da da aynı problemi yaşar mıyım? Yaşarsam nasıl çözerim?
Dosya sistemini linux e göre ayarladığın sürece yaşamazsın.
Evren kardeşim, ellerine kollarına sağlık.
Bir çok yabancı sitede gezip durdum çözüme ulaşamamıştım.
Ne varsa, Türkte var!
Arama motorları için az detaylı olarak yazmak istiyorum. Linux sunucumda Vesta Control Panel kullanıyorum.
Vestacp login olamıyorum Vestacp giriş yapamıyorum
şifre hatalı uyarısı bile vermiyordu. Siteler çalışıyor ama giriş yapamıyorum.
ftp’ye dosya atmaya çalıştığımda 550 failed to change directory hatası alıyorum.
Bende internette bir çok siteden araştırdım vestacp loglarını inceleye başladım
/var/log/vesta/system.log
/var/log/vesta/auth.log
/var/log/vesta/nginx-error.log
Logları inceledikten sonra bu şekilde bir hata ile karşılaştım.
FastCGI sent in stderr: “PHP message: PHP Warning: Invalid argument supplied for foreach() in /usr/local/vesta/web/login/index.php on line 92” while reading response header from upstream, client: , server: _, request: “GET /login/ HTTP/1.1”, upstream: “fastcgi://unix:/var/run/vesta-php.sock:”, host:
Bu hatanın en büyük nedenlerinden birisi disk doluluğundan meydana gelmesiymiş.
” df -h ” komutunu kullandığımda sistemde yeri kadar yer görüyordum.
” df -i ” komutunu çalıştırdığımda sistemde boş yer gözükmüyordu. /dev/mapper/vg-root full olarak gözüküyordu.
Çözüm şekli,
” for i in /var/spool/exim/*; do echo $i; find $i |wc -l; done ” komutuyla şişkin dosyayı buldum.
rm -fr /var/spool/exim/msglog
rm -fr /var/spool/exim/input
ve içerisini boşalttım.
Tüm sorumlarım çözüldü, Çok teşekkür ederim!