<p>Bu, bir günden daha eski günlük dosyalarını siler. Ne kadar alana ihtiyacınız olduğuna bağlı olarak <code>-mtime</code> değerini ayarlayabilirsiniz.</p>

<p><strong>Eski dağıtım sürümleri:</strong></p>
<p>Mevcut veya bir önceki sürüm olmayan sürümleri tanımlayın:</p>
<div class="highlight js-code-highlight">
    <pre class="highlight shell"><code><span class="nb">ls</span> <span class="nt">-lt</span> /home/deploynix/your-site/releases/

<p>Geçerli olanı (current) ve geri dönüş için sadece bir önceki sürümü (symlink olan) koruyarak en eski sürümleri silin:</p>
<div class="highlight js-code-highlight">
    <pre class="highlight shell"><code><span class="nb">rm</span> <span class="nt">-rf</span> /home/deploynix/your-site/releases/20260115_120000

<p><strong>Apt paket önbelleği:</strong><br/></p>
<div class="highlight js-code-highlight">
    <pre class="highlight shell"><code>apt-get clean

<p><strong>Günlük dosyaları:</strong><br/></p>
<div class="highlight js-code-highlight">
    <pre class="highlight shell"><code>journalctl <span class="nt">--vacuum-size</span><span class="o">=</span>200M

<p><strong>Geçici dosyalar:</strong><br/></p>
<div class="highlight js-code-highlight">
    <pre class="highlight shell"><code><span class="nb">rm</span> <span class="nt">-rf</span> /tmp/laravel-<span class="k">*</span>

<h3>
    <a name="step-3-address-the-root-cause" href="#step-3-address-the-root-cause">
    </a>
    Adım 3: Temel Nedeni Ele Alın
</h3>

<p>Acil alanı boşalttıktan sonra, diskin neden ilk başta dolduğunu tanımlayın:</p>
<ul>
    <li>Eğer günlükler sorunsa, döngüyü yapılandırın (bkz. Önleme bölümü)</li>
    <li>Eğer eski sürümler birikmeye neden olduysa, Deploynix’te saklama sayısını azaltın</li>
    <li>Eğer veritabanı dump’ları ise, bir cron görevi oluşturun veya dış yedeklemelere taşımayı düşünün</li>
    <li>Eğer MySQL ikili günlükleri ise, süreyi yapılandırın</li>
</ul>

<h3>
    <a name="step-4-restart-services" href="#step-4-restart-services">
    </a>
    Adım 4: Hizmetleri Yeniden Başlatın
</h3>

<p>Alan açtıktan sonra, disk yetersizliği nedeniyle başarısız olan hizmetlerin yeniden başlatılması gerekebilir:</p>
<div class="highlight js-code-highlight">
    <pre class="highlight shell"><code>systemctl restart php8.4-fpm

systemctl restart nginx
systemctl restart mysql

<p>Deploynix’te, sunucu kontrol panelini kullanarak bu hizmetleri yeniden başlatın. Birkaç sayfayı yükleyerek ve veritabanı bağlantısını kontrol ederek uygulamanın düzgün çalışıp çalışmadığından emin olun.</p>

<h3>
    <a name="step-5-verify-recovery" href="#step-5-verify-recovery">
    </a>
    Adım 5: Kurtarmayı Doğrulayın
</h3>

<div class="highlight js-code-highlight">
    <pre class="highlight shell"><code><span class="nb">df</span> <span class="nt">-h</span> /

<p>En az %20 serbest alan görmelisiniz. Eğer temizlikten sonra disk hala neredeyse dolu ise, daha büyük bir sunucuya geçiş yapmayı veya bulut sağlayıcınızdan blok depolama eklemeyi düşünebilirsiniz.</p>

<h2>
    <a name="longterm-disk-management-strategy" href="#longterm-disk-management-strategy">
    </a>
    Uzun Vadeli Disk Yönetim Stratejisi
</h2>

<h3>
    <a name="the-8020-rule-for-disk-space" href="#the-8020-rule-for-disk-space">
    </a>
    Disk Alanı için 80/20 Kuralı
</h3>

<p>Disk kullanımınızı her zaman %80’in altında tutun. Bu, size:</p>

<ul>
    <li>Günlükleri artıran trafik dalgalanmaları için alan bırakır</li>
    <li>Yeni sürüm dizinleri oluşturan dağıtımlar için alan sağlar</li>
    <li>Karmaşık sorgular sırasında MySQL geçici tabloları için alan bırakır</li>
    <li>Yükleme öncesinde paketleri indiren sistem güncellemeleri için alan sağlar</li>
</ul>

<h3>
    <a name="offsite-everything" href="#offsite-everything">
    </a>
    Her Şeyi Dışarda Tutun
</h3>

<p>Herhangi bir önemli veriyi dışarda tutmalısınız:</p>

<ul>
    <li>Veritabanı yedekleri: Deploynix bunları S3/Wasabi/Spaces’a gönderir</li>
    <li>Uygulama günlükleri: Harici bir günlük hizmetine (Papertrail, Logtail) gönderilmesi değerlendirilebilir</li>
    <li>Kullanıcı yüklemeleri: Sunucunun yerel diskine değil, S3 veya benzeri nesne depolama alanlarında saklanmalıdır</li>
</ul>

<h3>
    <a name="automated-cleanup-cron-jobs" href="#automated-cleanup-cron-jobs">
    </a>
    Otomatik Temizlik Cron Görevleri
</h3>

<p>Deploynix üzerinden haftalık bir temizlik cron görevi ayarlayın:</p>
<div class="highlight js-code-highlight">
    <pre class="highlight shell"><code><span class="c"># Eski Laravel günlüklerini temizle</span>

find /home/deploynix//storage/logs -name .log” -mtime +7 -delete

# Apt önbelleğini temizle
apt-get clean -y

# Eski geçici dosyaları temizle
find /tmp -type f -mtime +7 -delete

<p>Bu otomatik olarak çalışır ve yavaş yavaş birikimi önler.</p>

<h3>
    <a name="disk-usage-tracking" href="#disk-usage-tracking">
    </a>
    Disk Kullanımını İzleme
</h3>

<p>Disk kullanım trendinizi izleyin, yalnızca mevcut değeri değil. Geçmişte %40 olan bir diskin şu an %50 olması, son birkaç aydır aynı %50’de olan bir diskten çok farklıdır.</p>

<p>Deploynix’in izleme panosu, bu trendi göstermektedir. Sürekli bir büyüme gördüğünüzde, diskin ne zaman dolacağını hesaplayın ve acil durum haline gelmeden önce yanıtınızı planlayın — ya temizlik, yapılandırma değişikliği veya sunucu yükseltmesi yapın.</p>

<h2>
    <a name="when-to-upgrade-instead-of-clean" href="#when-to-upgrade-instead-of-clean">
    </a>
    Temizlemek Yerine Ne Zaman Yükselteceksiniz?
</h2>

<p>Bazen sorun daha iyi bir temizlik değil, daha fazla disk alanıdır. Daha büyük bir diske ihtiyacınız olduğunu gösteren işaretler:</p>

<ul>
    <li>Veritabanınız gerçekten büyükse (birkaç gigabayt) ve büyümeye devam ediyorsa</li>
    <li>Uygulamanız yerel olarak saklanması gereken dosyaları barındırıyorsa</li>
    <li>Uyum gereği 7 günden fazla günlük saklamanız gerekiyorsa</li>
    <li>Dağıtım bileşenleri (node_modules, vendor) büyükse ve sık sık dağıtım yapıyorsanız</li>
</ul>

<p>Bulut sağlayıcılar, disk upgrade işlemlerini basit hale getirir. Hetzner, DigitalOcean, Vultr ve Linode, hacimlerin boyutunu değiştirme veya daha fazla depolama alanı olan paketlere geçme desteği sunmaktadır. Deploynix uygulama katmanını yönetmektedir, bu nedenle altyapı tarafında bir disk genişletme, dağıtım yapılandırmanızda herhangi bir değişiklik gerektirmez.</p>

<h2>
    <a name="the-nuclear-option-server-rebuild" href="#the-nuclear-option-server-rebuild">
    </a>
    Nükleer Seçenek: Sunucu Yeniden Yapılandırma
</h2>

<p>Nadir durumlarda, bir sunucunun diski o kadar dağınıktır ki, temizliği pratik olarak imkansızdır. Deploynix’in yeniden yapılandırması basittir:</p>

<ol>
    <li>Daha büyük bir planda yeni bir sunucu sağlayın</li>
    <li>Git repository'nizi bağlayın</li>
    <li>En son Deploynix yedeğinden veritabanınızı geri yükleyin</li>
    <li>Ortam değişkenlerinizi yapılandırın</li>
    <li>Dağıtım yapın</li>
    <li>DNS’i yeni sunucuya yönlendirin</li>
    <li>Eski sunucuyu devre dışı bırakın</li>
</ol>

<p>Bu işlem 15-30 dakika sürer ve temiz bir sunucu ile bilinen iyi bir duruma sahip olursunuz. Uzun yıllardır biriken dosyalarla bir sunucunun temizlenmesinden daha hızlıdır.</p>

<h2>
    <a name="conclusion" href="#conclusion">
    </a>
    Sonuç
</h2>

<p>Disk alanı tükenmesi, öngörülebilir ve önlenebilir bir arızadır. Günlük döngüsü, sürüm saklama sınırları, dış yedeklemeler ve izleme uyarıları kombinasyonu, sürpriz durumları tamamen ortadan kaldırır.</p>

<p>Deploynix’in sağlık uyarılarını %80 disk kullanımında sizi uyarmak için yapılandırın. Laravel uygulamanız için günlük döngüsünü ayarlayın. Dağıtım sayısını 3-5 ile sınırlandırın. Yedekleri ve günlükleri dışarı gönderin. Bu dört eylem, disk ile ilgili kesintilerin büyük bir kısmını önler.</p>

<p>Bu durumu yapıyorsanız — ve bir gün herkese olur — kurtarma süreci sistematik olmalıdır: en büyük tüketicileri belirleyin, güvenle silinebilecek dosyaları silin, temel nedeni ele alın ve etkilenen hizmetleri yeniden başlatın. Deploynix’in web terminali ve izleme panosu ile bu işlemi tarayıcınızdan dakikalar içinde gerçekleştirebilirsiniz.</p>

Kaynak: Orijinal Makale

Bu Makaleyi Paylaş