İçeriğe geç

Linux sunucuda disk dolu: alan nasıl boşaltılır

Orta 20 dk Güncellendi:

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. 1

    Disk kullanımını kontrol edin

    Hangi bölümün dolu olduğunu görmek için df -h komutunu ç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. 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. 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. 4

    Günlükleri temizleyin

    Günlükler genellikle /var/log altında bulunur. Teşhis için gerekliyse temizlemeden önce günlükleri yedekleyin. Eski arşivlenmiş günlükleri (*.gz, *.1) silebilir veya root olarak truncate -s 0 /var/log/isim.log komutuyla kısaltabilirsiniz. Etkin günlükleri silmeyin, kısaltın veya rotasyona tabi tutun.

  5. 5

    Paket önbelleğini temizleyin

    Debian/Ubuntu sistemlerinde root olarak veya sudo ile: apt clean ve apt autoremove. RHEL/CentOS/Fedora sistemlerinde root olarak veya sudo ile: dnf clean all ve dnf autoremove. Bu, indirilen paketlerin kapladığı alanı boşaltır.

  6. 6

    Geçici dosyaları temizleyin

    /tmp ve /var/tmp dizinlerini inceleyin ve birkaç günden eski dosyaları silin. Etkin işlemler tarafından kullanılan dosyalara karşı dikkatli olun.

  7. 7

    Logrotate yapılandırın

    /etc/logrotate.conf ve /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çin rotate 7 ve daily ekleyebilirsiniz.

  8. 8

    Disk bağlamayı kontrol edin

    Tüm bölümlerin doğru bağlanıp bağlanmadığını görmek için mount ve df -h komutları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.

Paylaş
Çözüm bulamadınız mı?AI BT asistanı 7/24 hizmetinizde. Sorunu anlatın veya hatanın ekran görüntüsünü gönderin, durumunuza özel talimat alın.AI BT asistanına sorun