Disk Alanı Yönetimi Neden Önemlidir?
Disk alanı, her paylaşımlı hosting veya sanal sunucunun en kritik kaynaklarından biridir. Disk alanı %90 veya %95 sınırına ulaştığında, yalnızca hizmet yavaşlamakla kalmaz, aynı zamanda MySQL veya Apache gibi hizmetler tamamen durabilir. Birçok kullanıcı sorunun yalnızca web sitesi dosyalarının boyutundan kaynaklandığını düşünür, ancak pratikte eski loglar, gereksiz yedekler ve kullanılmayan önbellekler alanın büyük bir kısmını kaplar. Bu makalede, Linux komut satırı araçlarını kullanarak disk alanını nasıl hassas bir şekilde inceleyeceğinizi ve hedefli temizlikle değerli alanı nasıl boşaltacağınızı öğreneceksiniz.
İlk İnceleme: Ne Kadar Alan Ne Tarafından Kullanılıyor?
Herhangi bir işlem yapmadan önce, hangi bölümlerin en fazla tüketimi yaptığını bilmelisiniz. Bunun için iki temel komut yeterlidir.
Genel Bakış İçin df Komutu
df -h (insan tarafından okunabilir) komutu, her bölümün kullanımını gösterir. Tipik çıktı şu şekildedir:
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 20G 18G 1.5G 93% /
Kök bölümün (/) kullanım yüzdesi %85'in üzerindeyse, harekete geçme zamanı gelmiştir. Önemli not: Bazen /var veya /home gibi ayrı bölümler bağımsız olarak dolabilir.
Büyük Klasörleri Bulmak İçin du Komutu
du -sh /* komutu, kök dizindeki her klasörün boyutunu gösterir. Daha ayrıntılı inceleme için du -sh /var/* veya du -sh /home/* kullanabilirsiniz. Kullanışlı bir ipucu: du -sh /var/log/* | sort -rh | head -10 ile /var/log içindeki en büyük on dosyayı veya klasörü sıralı olarak görebilirsiniz.
Eski Logların Temizlenmesi (Disk Alanının En Büyük Düşmanı)
Sistem ve hizmet logları genellikle sınırsız bir şekilde büyür. /var/log/syslog, /var/log/messages gibi dosyalar ve /var/log/apache2/ veya /var/log/nginx/ içindeki Apache veya Nginx logları kolayca birkaç gigabayt alan kaplayabilir.
logrotate ile Eski Logları Silme
logrotate aracı çoğu Linux dağıtımında varsayılan olarak yüklüdür, ancak ayarları genellikle eksiktir. Ana yapılandırma dosyası /etc/logrotate.conf konumundadır. Apache logları için örnek bir yapılandırma:
/var/log/apache2/*.log { weekly rotate 4 compress delaycompress missingok notifempty create 640 root adm }Bu yapılandırma, logların haftada bir döndürülmesini ve yalnızca 4 eski sürümün saklanmasını sağlar. Disk alanı kritikse,
rotate 2veya hattadailyolarak ayarlayabilirsiniz.Eski Logların Manuel Temizliği
logrotatedüzgün çalışmadıysa, aşağıdaki komutla 30 günden eski logları silebilirsiniz:find /var/log -name "*.log.*" -type f -mtime +30 -deleteAyrıca sıkıştırılmış dosyaları (
.gz)find /var/log -name "*.gz" -type f -deleteile silebilirsiniz. Önemli not: Aktif log dosyalarını (örneğin/var/log/syslog) asla silmeyin; yalnızca eski sürümleri temizleyin.Gereksiz ve Fazla Yedeklerin Yönetimi
cPanel, Plesk veya manuel betiklerin otomatik yedekleri genellikle
/backup,/home/backupgibi klasörlerde veya kullanıcı klasörünün içinde saklanır. Yaygın bir hata: Aylarca günlük yedekleri saklamak.Büyük Yedekleri Bulma
Aşağıdaki komutla yedek dosyalarını (genellikle
.tar.gzveya.sqluzantılı) bulabilirsiniz:find / -name "*.tar.gz" -type f -size +100M -exec ls -lh {} \;14 günden eski yedekleriniz varsa ve disk alanı azsa, bunları silebilirsiniz:
find / -name "*.tar.gz" -type f -mtime +14 -deleteYaygın hata: Kullanıcılar bazen veritabanı yedeklerini
public_htmlklasöründe saklar, bu da web üzerinden indirilebilir olmasına ve güvenliği tehlikeye atmasına neden olur. Bu dosyaları web erişimi olmayan bir klasöre taşıyın.Sistem ve Uygulama Önbelleğinin (Cache) Temizlenmesi
Önbellekler hız için tasarlanmıştır, ancak bazen boyutları mantıklı sınırların ötesine geçer.
apt Önbelleği (Debian tabanlı dağıtımlarda)
apt tarafından indirilen paketler
/var/cache/apt/archives/konumunda saklanır. Aşağıdaki komutla bunları temizleyebilirsiniz:sudo apt-get cleanBu komut genellikle 200 ila 500 megabayt alan boşaltır.
MySQL/MariaDB Önbelleği
MySQL'in geçici dosyaları ve binary logları
/var/lib/mysql/veya/var/log/mysql/içinde büyüyebilir. Binary logları temizlemek için (etkinse), önce MySQL'e girin:mysql -u root -pArdından aşağıdaki komutu çalıştırın:
PURGE BINARY LOGS BEFORE NOW() - INTERVAL 7 DAY;Bu, 7 günden eski binary logları siler. Dikkat: Replication kullanıyorsanız, temizlemeden önce replicaların güncel olduğundan emin olun.
PHP Önbelleği (WordPress ve Laravel Uygulamaları)
WordPress genellikle küçük resim önbelleğini (thumbnails)
/wp-content/uploads/içinde saklar. WP-Optimize gibi eklentiler veritabanı önbelleğini ve geçici dosyaları temizleyebilir. Laravel için/storage/framework/cache/ve/storage/framework/views/klasörlerini kontrol edin.Büyük ve Olağandışı Dosyaları Bulma
Bazen büyük dosyalar beklenmedik klasörlerde gizlenir. Örneğin, core dump dosyaları, belirli hizmetlerin eski log dosyaları veya kullanıcılar tarafından yüklenen dosyalar.
Etkileşimli Gezinti İçin
ncduKullanımı
ncduyüklü değilse,sudo apt install ncduile yükleyin. Ardındansudo ncdu /ile etkileşimli olarak klasörleri gezebilir ve en büyük dosyaları görebilirsiniz. Bu araç, büyük dizinler içindu'dan çok daha hızlıdır.500 Megabayttan Büyük Dosyaları Bulma
Aşağıdaki komut, tüm sistemde 500 megabayttan büyük tüm dosyaları bulur:
find / -type f -size +500M -exec ls -lh {} \; 2>/dev/nullÇıktıyı inceleyin ve gereksiz dosyaları silin.
Paylaşımlı Hostingde Disk Alanı Yönetimi (Root Erişimi Olmadan)
Paylaşımlı hosting kullanıyorsanız ve SSH erişiminiz yoksa, genellikle cPanel veya Plesk üzerinden disk alanını yönetebilirsiniz. cPanel'de "Disk Usage" bölümünü açın. Plesk'te "Tools & Settings" > "Disk Usage" yolunu izleyin.
public_html,logsvebackupsklasörlerini kontrol edin. SSH erişiminiz varsa, yukarıdaki komutları kendi ana dizininizde çalıştırın (sudogerektirmez).Gelecek İçin Önleyici İpuçları
- Otomatik izleme: Her gün çalışacak ve disk alanı %85'i aşarsa size e-posta gönderecek
df -hkomutunu içeren basit bir betik ayarlayın. - logrotate ayarları: Tüm önemli hizmetlerin (Apache, Nginx, MySQL, PHP-FPM) uygun logrotate yapılandırmasına sahip olduğundan emin olun.
- Akıllı yedekler: 30 günden eski yedekleri otomatik olarak silin. Yalnızca en son sürümü saklamak için rsync gibi araçlar kullanın.
- Önbelleği sınırlayın: WordPress'te, önbellek eklentilerini maksimum 500 megabayt alan kaplayacak şekilde ayarlayın.
Özet
Disk alanı yönetimi, tek seferlik bir eylem değil, sürekli bir süreçtir. df, du ve find gibi basit Linux komutlarını kullanarak ve logrotate gibi araçları yapılandırarak, hosting disk alanınızı her zaman güvenli sınırlar içinde tutabilirsiniz. Daha fazla rehberliğe ihtiyacınız varsa, ServerNet destek ekibi size bu konuda yardımcı olabilir. Unutmayın: Emin olmadan sistem dosyalarını asla silmeyin ve temizlemeden önce her zaman önemli dosyaların yedeğini alın.