cPanel “Disk Full” Hatası ve Güvenli Log Temizleme

cPanel sunucun 0 dolduğunda paneller açılmayabilir. Bu yüzden SSH (Terminal) üzerinden bağlanarak şu 4 adımla hızlıca yer açmalısın: Büyük Dosyaları Avla: find komutuyla sunucuda 100 MB'tan büyük dosyaları ve devasa error_log dosyalarını listele. ** error_log Dosyalarını Boşalt:** Dosyaları doğrudan silmek yerine içini temizleyen truncate komutunu kullan. cPanel Çöp Kutusunu Boşalt: Kullanıcıların sildiğini sandığı ama .trash klasöründe biriken çöpleri temizle. Geçici Dosyaları ve Yedekleri Uçur: /tmp dizinini ve sistemde kalmış eski, yarım bırakılmış WHM yedek dosyalarını arındır.

Sistem yöneticilerinin ve webmasterların en zamansız anlarda karşılaştığı o meşhur kabusa geldik: cPanel “Disk Full” (%100 Disk Kullanımı) hatası.

Gece yarısı telefonuna bir bildirim düşer veya sitene girmeye çalışırsın ama karşında “Internal Server Error” ya da veritabanı bağlantı hatası vardır. cPanel’e girmeye çalışırsın, panel bile açılmaz çünkü sunucuda geçici bir dosya yazacak (session oluşturacak) 1 kilobaytlık bile yer kalmamıştır. Disk ağzına kadar dolduğunda MySQL servisleri anında havaya uçup durur.

Kolları sıva, sunucuyu o gereksiz şişkinlikten kurtaracak ve diske nefes aldıracak güvenli temizlik operasyonunu başlatıyoruz!

cPanel “Disk Full” Hatası ve Güvenli Log Temizleme Yöntemleri

Bir sunucu yöneticisinin hayatında karşılaşabileceği en can sıkıcı anlardan biri, disk doluluk oranının %100’e vurmasıdır. Sunucu kilitlenir, e-postalar gelmez olur, MySQL servisleri “Ben yazacak yer bulamıyorum” diyerek kepenk kapatır ve sitelerin bir anda erişime kapanır. cPanel arayüzüne girmeye çalışırsın ama panel seni içeri bile almaz.

Peki bu disk nereye gitti? Sitenin boyutunu biliyorsun, yüklediğin görselleri biliyorsun; matematiksel olarak o diskin dolma ihtimali yok gibi görünüyor. Ama arka planda, senin ruhun bile duymadan çılgınlar gibi büyüyen, gigabaytlarca yer kaplayan sinsi düşmanlar var: Log dosyaları, yedek artıkları ve çöp kutusunda unutulanlar.

Bu rehberde, sunucudaki o gereksiz safraları nasıl tespit edeceğini, hangi dosyaları gözün kapalı silebileceğini ve hangilerine dokunmaman gerektiğini terminal (SSH) ve cPanel üzerinden adım adım anlatıyorum. Korkma, sitenin can damarı olan veritabanını veya canlı dosyalarını uçurmadan, tamamen güvenli bir temizlik yapacağız.

1. Adım: SSH Üzerinden Durum Tespiti (Suçluyu Bulma)

Eğer cPanel arayüzün açılmıyorsa tek çaren sunucuya SSH üzerinden root olarak bağlanmaktır. Terminale girdiğinde ilk yapman gereken şey, diskin hangi bölüme kadar dolduğunu görmektir. Şu komutu çalıştır:

df -h

Bu komut sana sunucudaki disk bölümlerini (partition) ve doluluk oranlarını listeler. Genellikle /dev/vda1 veya / (root) dizininin %100 dolu olduğunu görürsün. Şimdi suçlunun hangi klasörün altında gizlendiğini bulmak için derinlemesine bir tarama yapalım. Sunucunun kök dizinine geçip şu komutla en çok yer kaplayan klasörleri listele:

du -h --max-depth=1 / | sort -hr

Bu komut klasörleri boyutlarına göre büyükten küçüğe dizer. Muhtemelen /var (logların ve veritabanlarının evi) veya /home (sitelerinin barındığı yer) klasörünün şiştiğini göreceksin. Hangi klasör büyükse, komuttaki / işaretinin yanına o klasörün adını yazarak (Örn: /home) suçluya doğru adım adım yaklaş.

2. Adım: Sinsi error_log Dosyalarını Güvenli Şekilde Boşaltın

WordPress sitelerinde bir eklenti veya tema hata verdiğinde, PHP bu hataları sitenin kurulu olduğu klasörün içine error_log adında bir dosyaya yazar. Eğer sitede saniyede onlarca kez tekrarlanan kronik bir kod hatası varsa, o error_log dosyasının boyutu birkaç gün içinde 40-50 GB’a fırlayabilir.

İşte en kritik yazılım kuralı: Bir log dosyasını asla doğrudan rm -rf komutuyla silme! Çünkü o dosya silinse bile, arka planda o dosyaya veri yazmaya devam eden bir Linux servisi (Apache/LiteSpeed) dosyayı havada asılı tutar. Disk alanı boşalmış gibi görünmez ama dosya ortadan kaybolur. Sunucuyu yeniden başlatana kadar da o alan açılmaz.

  • Güvenli Yöntem: Dosyayı silmek yerine içini tamamen boşaltacağız (boyutunu sıfırlayacağız). home dizinindeki tüm error_log dosyalarını bulup içini tek tıkla sıfırlamak için şu sihirli komutu çalıştır:
find /home -type f -name "error_log" -exec truncate -s 0 {} \;

Bu komut sunucudaki tüm siteleri tarar, error_log dosyalarını bulur ve içlerindeki tüm yazıları tek milisaniyede silerek dosya boyutunu 0 KB’a düşürür. Diskte anında devasa bir yer açıldığını göreceksin.

3. Adım: cPanel Kullanıcılarının Çöp Kutusunu (.trash) Temizleyin

cPanel kullanıcıları Dosya Yöneticisi’ne (File Manager) girip bir dosyayı sildiklerinde, eğer “Çöp kutusuna göndermeden kalıcı olarak sil” kutucuğunu işaretlemezlerse, o dosyalar kullanıcının ana dizinindeki gizli .trash klasörüne taşınır. Kullanıcı sitenin hafiflediğini sanır ama sunucu seviyesinde o disk alanı hala doludur.

Tüm cPanel kullanıcılarının çöp kutularını tek seferde boşaltmak için SSH terminaline şu komutu zerk et:

rm -rf /home/*/public_html/.trash/*
rm -rf /home/*/.trash/*

Bu hamle, kullanıcıların çöp kutularında unuttuğu tüm eski site yedeklerini ve zip dosyalarını sunucudan kalıcı olarak kazıyacaktır.

4. Adım: Sistem Loglarını ve Geçici Dosyaları (/tmp) Arındırın

Linux işletim sisteminin kendi tuttuğu sistem logları da zamanla şişebilir. Özellikle /var/log dizini altındaki eski loglar diski yorar.

  • cPanel Log temizleme scriptini çalıştırın: cPanel’in kendi içinde barındırdığı ve eski logları temizleyen dahili bir aracı vardır. Terminale şu komutu yazarak çalıştırabilirsin:
/usr/local/cpanel/scripts/clean_user_php_sessions

Büyük sistem loglarını sıfırlayın:
/var/log/messages veya /var/log/secure dosyaları şiştiyse, yine truncate kullanarak içlerini temizle:

truncate -s 0 /var/log/messages
truncate -s 0 /var/log/maillog

Ayrıca sunucunun geçici işlem dosyalarını yazdığı /tmp dizini dolduysa, buradaki eski session (oturum) dosyalarını güvenli bir şekilde temizlemek için cPanel’in tmpwatch aracını tetikleyebilirsin:

/usr/sbin/tmpwatch --mtime --all 24 /tmp

Bu komut, /tmp klasöründe bulunan ve son 24 saattir hiç dokunulmamış tüm geçici dosyaları sunucudan güvenli bir şekilde eler.

5. Adım: WHM Yedekleme (Backup) Artıklarını Temizleyin

Eğer sunucunda otomatik yedekleme (Backup) ayarı açıksa ve yedekleme esnasında sunucu kilitlendiyse veya internet koptuysa, WHM yedeği tamamlayamaz. Ancak o ana kadar oluşturduğu devasa .tar.gz dosyasını geçici klasörlerde bırakır.

Yarım kalmış cPanel yedek artıklarını temizlemek için şu dizinleri kontrol et:

  • /home/cpanelpkgbackup/
  • /var/cpanel/backups/
  • /home/backup/

Eğer buralarda tamamlanmamış, eski tarihli büyük dosyalar görüyorsan onları temizleyerek diskinde nefes alacak devasa alanlar yaratabilirsin.

Geleceğe Yatırım: Diskin Tekrar Dolmasını Nasıl Engellersin?

Diski temizledik, siteler ayağa kalktı ve her şey yolunda. Peki bir hafta sonra aynı kabusu tekrar yaşamamak için ne yapmalısın?

  1. cPanel Log Rotation Ayarını Aç: WHM panelinize girin ve Log Rotation menüsünü bulun. Buradan log dosyalarının maksimum kaç MB’a ulaştığında otomatik olarak arşivlenip silineceğini (Örn: 50 MB) seçin.
  2. Yedekleri Harici Sunucuya Taşıyın: Yedeklerinizi asla sitenin barındığı aynı diskte tutmayın. WHM yedekleme ayarlarından uzak bir FTP, S3 veya Google Drive hesabı bağlayarak yedeklerin oluşturulur oluşturulmaz sunucudan dışarı fırlatılmasını sağlayın.

💡 Teknik İpucu (Expert Box)

Bunu biliyor muydunuz? Sunucunuzda disk alanı boş görünmesine rağmen hala “Disk Full / No space left on device” hatası alıyor olabilirsiniz. Bunun gizli sebebi Inode (Dizin Düğümü) limitinin dolmuş olmasıdır. Linux sistemlerde her bir tekil dosya (küçücük bir ikon veya boş bir text dosyası bile olsa) 1 adet Inode tüketir. Sunucunuzda GB olarak yer kalmış olsa bile, eğer Inode dolduysa sunucuya yeni tek bir dosya bile yazamazsınız. Sunucunuzun Inode durumunu df -i komutuyla kontrol edebilirsiniz. Eğer %100 doluluk görüyorsanız, sunucuda çok büyük dosyalar değil, milyonlarca küçük çöp dosya (Örn: temizlenmemiş binlerce PHP e-posta session dosyası) var demektir!

Sonuç: Sunucu Alanını Doğru Yönetin

cPanel “Disk Full” hatası, ilk bakışta sitelerin çökmesine neden olan korkutucu bir durum gibi görünse de, SSH terminalinin gücü ve doğru komut kombinasyonlarıyla 5 dakikada çözülebilecek yapısal bir durumdur. Log dosyalarını silmek yerine truncate ile sıfırlamayı, çöp kutularını periyodik olarak temizlemeyi alışkanlık haline getirdiğinde sunucun her zaman ilk günkü gibi stabil ve kararlı çalışmaya devam edecektir.

Sen disk doluluğu yüzünden sitelerinin çöktüğü o kriz anında en çok hangi klasörün şiştiğini fark ettin? Komutları uygularken SELinux veya Inode engeline takıldın mı? Yorumlara yaz, sunucu loglarını ve disk mimarisini birlikte optimize edelim!

Bir Yorum Yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Benzer Yazılar