Diskte GB olarak boş alan olduğu halde “No space left on device” alıyorsanız inode sınırına ulaşmış olabilirsiniz. Her küçük cache dosyası veya oturum dosyası da bir inode tüketir. Bu rehber Linux üzerinde dosya sayısının kaynağını bulur.
1. Byte ve inode değerini ayırın
df -h /var
df -i /var
İlk komutta boş alan, ikincide IUse% yüzde 100 görünüyorsa disk kapasitesi artırmadan önce dosya sayısını inceleyin. Ayrı bir /tmp veya /home bölümü varsa aynı kontrolleri o yol için tekrarlayın.
2. Küçük dosyaların toplandığı dizini bulun
GNU du sürümünde:
sudo du --inodes -x -d1 /var 2>/dev/null | sort -n
sudo du --inodes -x -d1 /var/cache 2>/dev/null | sort -n
Son satır toplamdır. Büyük çıkan alt dizine inin. Cache, PHP session, mail kuyruğu ve uygulama geçici dosyaları farklı saklama kurallarına sahiptir; hepsine aynı silme işlemi uygulanmaz.
3. Silmeden önce tam liste çıkarın
Aşağıdaki yol örnektir; yalnızca kendi uygulamanızın yeniden oluşturulabilir cache diziniyle değiştirin.
find /srv/ornek-uygulama/var/cache -xdev -type f -mtime +7 -print
Listeye ürün görseli, yüklenen belge, session veya yedek karışmadığını doğrulayın. Uygulamanın kendi cache temizleme komutu varsa onu tercih edin. Dosya sistemi üzerinden temizlik gerekiyorsa önce uygulamanın cache yazmasını durdurun; listeyi doğruladıktan sonra aynı filtreye -delete eklenmesi seçilen dosyaları kalıcı olarak siler. Dizinin kendisini kaldırmayın.
4. Tekrar oluşmasını önleyin
Cache süre sonunun gerçekten çalıştığını, cron görevinin hata vermediğini ve dosyaların alt dizinlere ayrılıp ayrılmadığını kontrol edin. Milyonlarca dosya içeren klasörde kabuk yıldızı kullanmak “Argument list too long” hatasına neden olabilir; uygulama temizleyicisi veya find filtreleri kullanın.
Kontrol
df -i değerinde boş inode artmalı ve uygulama yeni bir dosya oluşturabilmelidir. Disk byte kullanımının çok az değişmesi normaldir. Temizlikten sonra birkaç saat arayla dosya sayısını izleyin.
Byte boş ama dosya oluşmuyor örneği
| Ölçüm | Örnek değer | Yorum |
|---|---|---|
| df -h | Use% 45 | Byte kapasitesi henüz dolmamış |
| df -i | IUse% 100 | Yeni dosya için inode kalmamış |
| du --inodes | Cache dizininde yoğunluk | Yeniden üretilebilir dosyalar ve süre sonu incelenir |
Bu durumda büyük bir yedek dosyasını silmek çok az inode açabilir. Sorun milyonlarca küçük dosyaysa uygulamanın cache/session saklama işini düzeltin. Hangi dizinin üretildiğini kanıtlamadan find -delete çalıştırmayın.
Bilgiyi uygulanabilir projeye dönüştürelim.
İhtiyacınızı teknik, operasyonel ve ticari açıdan değerlendirip doğru çözüm yol haritasını birlikte oluşturalım.
Projenizi Anlatın



