Inode (index node), Unix ve Linux gibi dosya sistemlerinde bir dosya veya dizin hakkında meta verileri depolayan bir veri yapısıdır. Inode, bir dosyanın içeriği dışında, dosya ile ilgili tüm bilgileri içerir.
Inode'un İçerdikleri
Inode, aşağıdaki bilgileri depolar:
- Dosya Türü:
- Dosya (regular file)
- Dizin (directory)
- Sembol bağlantısı (symbolic link)
- Dosya İzinleri:
- Kimlerin dosyaya erişebileceğini belirler (okuma, yazma, çalıştırma izinleri).
- Dosya Sahipliği:
- Dosya sahibinin ve grubunun kim olduğu.
- Dosya Boyutu:
- Byte cinsinden dosya boyutu.
- Dosyanın Diskteki Konumu:
- Dosyanın fiziksel blok numaralarını gösterir.
- Zaman Damgaları:
- Dosyanın oluşturulma, değiştirilme ve son erişim tarihleri.
- Bağlantı Sayısı:
- Dosyaya işaret eden bağlantıların (hard links) sayısı.
Inode'un İçermediği
- Dosya Adı:
- Inode, dosya adını içermez. Dosya adı, dizin yapısında saklanır ve inode numarası ile ilişkilendirilir.
Inode Numarası
Her dosya ve dizin, benzersiz bir inode numarasına sahiptir. Bu numara, dosya sistemindeki dosyayı tanımlamak için kullanılır.
Inode Nasıl Çalışır?
- Dosya Açma:
- Bir dosyayı açtığınızda, işletim sistemi, dosya adına göre inode numarasını bulur.
- İlgili inode numarasına giderek dosyanın meta verilerine erişir.
- Disk Bloklarının Bulunması:
- Inode, dosyanın fiziksel konumunu (blok numaralarını) içerir. Bu bloklar diskten okunur.
Inode ile İlgili Sık Karşılaşılan Sorunlar
- Inode Tükenmesi:
- Bir dosya sisteminde sınırlı sayıda inode bulunur. Çok sayıda küçük dosya oluşturulursa, inode'lar tükenebilir ve disk dolu olmasa bile dosya oluşturulamaz.
- Disk Alanı Kullanımı Sorunları:
- "No space left on device" hatası alıyorsanız, aslında disk alanı dolmamış, inode'lar tükenmiş olabilir.
Inode Kullanımı Nasıl Kontrol Edilir?
Diskteki Inode Kullanımı: Linux'ta inode'ları kontrol etmek için şu komutları kullanabilirsiniz: df -i
Bir Dizin veya Dosyadaki Inode Numarası: ls -i dosya_adı (bu çıktı, her dosya sistemindeki toplam, kullanılan ve kullanılabilir inode sayılarını gösterir.)
Inode Avantajları
- Dosyaların fiziksel yerleşiminden bağımsız bir meta veri yönetimi sağlar.
- Dosya sisteminde esneklik ve performans sunar.
Inode'un Dezavantajları
- Inode sınırlı olduğundan, dosya sistemine bağlı olarak çok sayıda küçük dosya oluşturulduğunda sorun yaşanabilir.
- Inode yönetimi, dosya sisteminin karmaşıklığını artırır.
Inode, dosya sistemlerinin temel taşlarından biridir ve verimli bir şekilde depolama yönetimi sağlar.
Inode Temizliği
Gereksiz inode temizliği, kullanılmayan veya gereksiz dosya ve dizinleri silerek inode kullanımını azaltmayı içerir.
1. Inode Kullanımını Kontrol Et
İlk olarak, inode kullanımını ve hangi dosya sisteminin yüksek inode tüketimine sahip olduğunu belirle. → df -i
Çıktı Açıklaması:
- Filesystem: Dosya sistemi adı.
- Inodes: Toplam inode sayısı.
- IUsed: Kullanılan inode sayısı.
- IFree: Kullanılabilir inode sayısı.
- IUse%: Inode kullanım yüzdesi.
Eğer bir dosya sistemindeki IUse% değeri çok yüksekse (örneğin %90 ve üzeri), o dosya sisteminde inode temizliği yapmanız gerekebilir.
2. Gereksiz Dosya ve Dizinleri Bul
Aşırı inode tüketimine neden olan küçük dosyaları ve gereksiz dizinleri bulun.
Küçük Dosyaları Bulma: find /hedef_dizin -type f -size -1k
- Bu komut, boyutu 1 KB’den küçük olan dosyaları bulur.
Çok Sayıda Dosya İçeren Dizinleri Bulma:
find /hedef_dizin -xdev -printf '%h\n' | sort | uniq -c | sort -nr | head (Bu komut, hangi dizinlerin en fazla dosyaya sahip olduğunu listeler.)
3. Gereksiz Dosyaları ve Dizinleri Temizle
Geçici Dosyaları Silme: find /tmp -type f -mtime +7 -delete
Çoğu zaman /tmp veya /var/tmp dizinlerinde çok sayıda küçük dosya birikir. Bu dizinlerdeki eski dosyaları temizleyebilirsiniz. (Bu komut, son 7 günde kullanılmamış dosyaları siler.)
Önbellek ve Log Dosyalarını Temizleme:
Bazı uygulamalar, log veya önbellek dosyalarını gereğinden fazla oluşturabilir.
- Log dosyalarını temizleme → sudo truncate -s 0 /var/log/örnek_log_dosyası.log
- Önemsiz log dosyalarını tamamen silme→ find /var/log -type f -name "*.log" -mtime +30 -delete
Gereksiz Yedek Dosyalarını Silme:
Örneğin .bak, .old veya benzeri dosyaları bulup silebilirsiniz → find / -type f \( -name "*.bak" -o -name "*.old" \) -delete
4. Çok Sayıda Küçük Dosyayı Birleştirme
Eğer bir dizinde çok sayıda küçük dosya varsa, bunları sıkıştırarak tek bir arşiv dosyasına dönüştürebilirsiniz.
tar -czf arşiv_dosyası.tar.gz /hedef_dizin
Daha sonra, küçük dosyaları silebilirsiniz → rm -rf /hedef_dizin
5. Otomatik Temizlik için Cron Job Ayarla
Gereksiz dosya temizliğini düzenli olarak yapmak için bir cron job tanımlayabilirsiniz.
Cron Job Örneği: crontab -e
Eklenecek satır (her gece 3'te eski dosyaları temizler) → 0 3 * * * find /tmp -type f -mtime +7 -delete
6. Dikkat Edilmesi Gerekenler
- Yedek Alın: Temizleme işlemi yapmadan önce önemli dosyalarınızın yedeğini alın.
- Sistem Dosyalarına Dokunmayın: /etc, /bin, /usr gibi sistem dosyalarını silmeyin.
- Önce İnceleyin: Silmeden önce hangi dosyaların etkileneceğini görmek için -delete yerine -print kullanarak listeyi kontrol edin.
find /tmp -type f -mtime +7 -print
Bu yöntemlerle gereksiz inode kullanımını azaltabilir ve sistem performansını artırabilirsiniz.
*Bu gönderi ve görsel chatgpt ile oluşturulmuştur