Kısa cevap
Disk dolduğunda, önce `df -h` ile kullanımı kontrol edin ve `du` ile büyük dosya ve klasörleri bulun. Ardından gereksiz günlükleri, paket önbelleğini ve geçici dosyaları temizleyin, ancak etkin günlükleri rotasyon olmadan silmemeye dikkat edin. Son olarak, tekrar dolmayı önlemek için logrotate yapılandırın ve eski arşivleri kaldırın.
Sorun nasıl anlaşılır
- Hizmetler veritabanına veya dosyalara veri yazamıyor
- Uygulama "No space left on device" hatası veriyor
- SSH ile sunucuya giriş yapamıyorsunuz
- Web sitesi 500 hatası veriyor veya yüklenmiyor
- Sistem günlükleri yazılmayı durduruyor
En yaygın nedenler
Kontrolsüz günlükler
Uygulama veya sistem günlük dosyaları rotasyon olmadan büyür ve tüm boş alanı kaplayabilir.
Paket önbelleği ve güncellemeler
İndirilen paketler ve paket yöneticisi önbellekleri (APT, DNF) zamanla birikir.
Geçici dosyalar ve oturumlar
`/tmp` içindeki dosyalar ve kullanıcı oturumları temizlenmezse sonsuza kadar kalabilir.
Büyük veritabanı dosyaları
Yedekleme dosyaları, veritabanı dökümleri veya arşivler büyük olabilir ve unutulabilir.
Yanlış bağlanmış diskler
Bir bölüm düzgün bağlanmazsa, veriler kök bölüme yazılır ve onu doldurur.
Adım adım çözüm
- 1
Disk kullanımını kontrol edin
Hangi bölümün dolu olduğunu görmek için
df -hkomutunu çalıştırın.Use%sütununa ve %100 dolu olan bölüme dikkat edin. Kök bölüm (/) doluysa, büyük klasörleri kontrol etmeye devam edin. - 2
En büyük klasörleri bulun
Root olarak
du -h --max-depth=1 /komutunu kullanarak dizinlere göre kullanımı görün. Ardından en büyük klasöre girin ve komutu tekrarlayın. Bu şekilde alanın nerede tüketildiğini hızlıca bulacaksınız. - 3
Büyük dosyaları bulun
100 MB'tan büyük dosyaları bulmak için root olarak
find / -type f -size +100M -exec ls -lh {} \;komutunu çalıştırın. Gereksiz olanları silin veya taşıyın, ancak önce ne işe yaradıklarını kontrol edin ve veriler önemliyse yedekleyin. - 4
Günlükleri temizleyin
Günlükler genellikle
/var/logaltında bulunur. Teşhis için gerekliyse temizlemeden önce günlükleri yedekleyin. Eski arşivlenmiş günlükleri (*.gz,*.1) silebilir veya root olaraktruncate -s 0 /var/log/isim.logkomutuyla kısaltabilirsiniz. Etkin günlükleri silmeyin, kısaltın veya rotasyona tabi tutun. - 5
Paket önbelleğini temizleyin
Debian/Ubuntu sistemlerinde root olarak veya
sudoile:apt cleanveapt autoremove. RHEL/CentOS/Fedora sistemlerinde root olarak veyasudoile:dnf clean allvednf autoremove. Bu, indirilen paketlerin kapladığı alanı boşaltır. - 6
Geçici dosyaları temizleyin
/tmpve/var/tmpdizinlerini inceleyin ve birkaç günden eski dosyaları silin. Etkin işlemler tarafından kullanılan dosyalara karşı dikkatli olun. - 7
Logrotate yapılandırın
/etc/logrotate.confve/etc/logrotate.d/içindeki yapılandırmayı kontrol edin. Günlüklerin döndürüldüğünden ve eski sürümlerin silindiğinden emin olun. Önemli günlükler içinrotate 7vedailyekleyebilirsiniz. - 8
Disk bağlamayı kontrol edin
Tüm bölümlerin doğru bağlanıp bağlanmadığını görmek için
mountvedf -hkomutlarını çalıştırın. Bir bölüm bağlı değilse, veriler kök bölüme yazılır ve onu doldurabilir.
Hiçbir şey işe yaramazsa
Hala yeterli alanınız yoksa, etkin işlemler tarafından tutulan silinmiş dosyalar olup olmadığını kontrol edin. Root olarak çalıştırılan lsof +L1 komutu bu tür dosyaları gösterir; onları tutan işlemi güvenli bir şekilde yeniden başlatın. Yeni bir disk eklemeyi veya bölümü genişletmeyi düşünün. Büyük verilere sahip veritabanları ve uygulamalar için düzenli olarak yedek alın ve eski dökümleri temizleyin. Son olarak, disk fiziksel olarak küçükse, daha büyük bir diske veya bulut depolamaya geçiş planlayın.
Tekrarlanmaması için
- `df -h` ve `du` kullanarak disk kullanımını düzenli olarak kontrol edin
- Günlük yazan tüm uygulamalar için logrotate yapılandırın
- Paket önbelleğini ve geçici dosyaları aylık olarak temizleyin
- Disk %80'e ulaştığında sizi uyaracak izleme araçları kullanın
Ne zaman uzmana başvurmalı
Sunucuya erişemiyorsanız veya hangi dosyaların silinmesinin güvenli olduğunu bilmiyorsanız, BT desteğine başvurun. Ayrıca, disk fiziksel olarak arızalıysa veya donanım arızası şüphesi varsa, bunu bir uzmanın incelemesi daha iyidir.
BT altyapı bakımı · Sunucular, ağlar, yedekleme, güvenlik ve yardım masasıSık sorulan sorular
Kök bölümdeki alanı hızlıca nasıl boşaltabilirim?
Önce `df -h` ile ne kadar alan kaldığını kontrol edin. Ardından `du` ve `find` ile büyük dosya ve klasörleri bulun ve gereksiz günlükleri ve önbelleği silin. Acilse, eski günlük arşivlerini geçici olarak silebilirsiniz, ancak gerekliyse önce yedekleyin.
/tmp içindeki dosyaları güvenle silebilir miyim?
Birkaç günden eski dosyaları silebilirsiniz, ancak önce etkin bir işlem tarafından kullanılmadıklarından emin olun. En iyisi, `/tmp` dizinini otomatik olarak temizleyen uygun bir zamanlayıcı ile `tmpwatch` veya `systemd-tmpfiles` kullanmaktır.
Temizlikten sonra disk neden tekrar doluyor?
En yaygın neden, günlük rotasyonunun olmaması veya büyük geçici dosyalar oluşturan bir uygulamadır. Logrotate yapılandırmasını kontrol edin ve çok fazla veri yazan uygulamalar için sınırlamalar ayarlayın.