Ana SayfaCron JobYetersiz TMP alanları otomatik silinsin: tmpwatch + cronjob

Yetersiz TMP alanları otomatik silinsin: tmpwatch + cronjob

Sunucunuzda yeterli olmayan bir tmp alanı kullanımınız varsa bunu devamlı izlemeniz ve dolma noktasına geldiğinde de boşaltmanız gerekir.

Bazı durumlarda ki bu başıma geldi (vmware VPS açılmıyor sorununa çözüm (tmp.secure’: directory not empty)) vmware ile yapılandırılan sunucularda tmp dolduktan sonra sunucu ile iletişiminiz kesiliyor ve tekrar tekrar restart atmanıza rağmen virtual sunucunuz açılmayabiliyor. Bu sorunu anlayana kadar çok zaman harcadım, isde bunun için bu konuyu hazırlamak ve doğabilecek sorunlara öncesinde hazır olmak istiyorum ki aynı şey bu yazıyı okuyanlar içinde geçerli..

Öncelikle tmp durumunu izlemek için sunucumuza tmpwatch uygulamasını kurmamız gerekiyor.

SSH ile sunucumuzun terminaline bağlanalım ve aşağıdaki kodu çalıştıralım:

yum -y install tmpwatch

Kullanımı:

Öncelikle tmp de en çok yer kaplayan klasörü belli saat aralıklarında silebilirsiniz yada komple tmp dizinini belli saatler aralığında silebilirsiniz. Örneğin 1 saat arayla tmp dizinini sildirmek isterseniz aşağıdaki kodu uygulayın:

crontab -e

Sonrasında ı harfine basarak düzenleme moduna geçelim ve en alta gelip aşağıdaki kodu ekleyelim:

0 */1 * * * /usr/sbin/tmpwatch -am 1 /tmp

Sonrasında esc aşağıdakini yazarak uygulamadan kaydederek çıkın:

:wq

2. yöntem: tmpwatch parametreleri

Bazı tmpwatch parametreleri ile belli bir gün aralığında kullanılmayan dosyaları silebilirsiniz.

Örnek olarak tmp klasörünün içinde 30 gündür erişilmeyen ve kullanılmayan dosyaların silinmesini istiyorsanız aşağıdaki kodu çalıştırın:

tmpwatch 30d /tmp/

Detaylı doküman, parametreler ile ilgili.

TMP klasörünü boşaltmanın dezavantajları:

Geçici olarak bu dizini kullanan uygulamalarda düzensizlik meydana gelebilir. Örneğin PHP session kayıt yeri tmp dizini belirlenmiş ise tmp klasörünün boşaltılması sitelerinize giren kullanıcıların oturumlarının sonlanmasına neden olabilir. Tekrar giriş yapmaları gerekecektir.

Benim önerim TMP klasörünü saat başı yada belirlediğiniz saatlerde temizlemek yerine TMP klasöründe en çok yer kaplayan klasörleri belirleyin ve o klasörleri silin. Örneğin Nginx kullanan sistemlerde oluşturulan tmp dosyaları TMP klasöründe saklanmaktadır ve otomatik olarak kendini temizlemez, buda zamanla sistemin şişmesine neden olur. Yukardaki cron jop koduna Nginx tmp klasörünün yolunu belirtirseniz örnek aşağıda yer alacak, o zaman sadece çok fazla yer kaplayan klasörleri temizlemiş olursunuz:

0 */1 * * * /usr/sbin/tmpwatch -am 1 /tmp/nginx_client

Sizin kullandığınız sunucuda nginx tmp dizini farklı yerde olabilir, ona göre bu kısmı düzelterek kaydedin: /tmp/nginx_client

Silme işlemleri için cronjob a eklenen saat bölümünde değişiklik yapabilirsiniz, bu konuda daha fazla bilgiyi ben cronjob ile ilgili yazı hazırlayana kadar internetten araştırarak görebilirsiniz..

Alternatif yöntem: tmp boyutunu artırmak

Aşağıdaki kodları sırayla uygulayarak tmp alan boyutunu artırabilirsiniz:

umount -l /tmp
mv /usr/tmpDSK /usr/eskitmpDSK
nano /scripts/securetmp

Sonrasında aşağıdaki gibi bir alan var bu alanın karşısında ki sayıyı artırarak tmp boyutunu artırabilirsiniz.

my $tmpdsksize = 512000;

512000 örnek rakamdır, sizde farklılık gösterebilir. Örneğin tmp boyutunu 8Gb yapmak siterseniz, aşağıdaki ayarı yapın:

my $tmpdsksize = 8192000;
Yeni içerikler
Benzer içerikler