Günlük döndürme değişikliğinin etkili olması nasıl sağlanır


99

RHEL 6 için log-döndürme konfigürasyonunu değiştirmek için bu linki takip ettim.

Config dosyasında değişiklik yaptıktan sonra, bunun yürürlüğe girmesi için ne yapmalıyım?

Yanıtlar:


139

logrotatecrontabçalışmak için kullanır . Planlanmış bir çalışmadır, bir arka plan programı değildir, bu nedenle yapılandırmasını yeniden yüklemeye gerek yoktur.
Ne zaman crontabyürütür logrotate, otomatik olarak yeni bir yapılandırma dosyası kullanır.
Konfigürasyonunuzu test etmeniz gerekirse, logrotateaşağıdaki komutu kullanarak kendi başınıza da çalıştırabilirsiniz :

logrotate /etc/logrotate.d/your-logrotate-config

Veya yorumlarda belirtildiği gibi logrotate, komutun çıktısındaki satırı tanımlayın ve crontab -lkomut satırını uygulayın, kesin bir cron.daily açıklaması için slm'nin cevabına bakın.


1
Sadece cevabınıza eklemek için, cron girişinin logrotategünde bir kez çalışması planlanıyor.
mkc

@Ketan, öyleyse, onu hemen nasıl etkileyebilirim? teşekkürler
BufBills

Emin değil. Bir olasılık, crontab'dan karşılık gelen girişi bulmak crontab -lve onu çalıştırmaktır.
mkc

2
Etkili olmasını istiyorsanız hemen cron sonrası şifreleri çalıştırın.
slm

2
logrotateBir sahiptir -dtest için seçeneği (veya "ayıklama"), en az bir kez bununla çalıştırmaya öneriyoruz.
SinirliFormsDesigner ile

36

logrotateÇeşitli dağıtımlarda gördüğüm ayarların çoğu bitiyor /etc/cron.daily. Orada uygun olarak adlandırılmış bir kabuk betiği var logrotate.

Örnek

$ ls -l /etc/cron.daily/logrotate 
-rwxr-xr-x 1 root root 180 May 18  2011 /etc/cron.daily/logrotate

Manuel çalışma

Manuel olarak çalışmasını sağlamak istiyorsanız sadece betiği root olarak çalıştırın:

$ sudo /etc/cron.daily/logrotate

Tipik olarak orada bulunan bir betiğe bakarsanız, logrotatebasitçe logrotate+ yapılandırma dosyasının yolunu çalıştırarak el ile nasıl çalışabileceğinizi gösterir .

#!/bin/sh

/usr/sbin/logrotate /etc/logrotate.conf
EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then
    /usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
fi
exit 0

31

Cron üzerinden otomatik olması gerekir. Değişikliklerinizi test etmek için onu zorlayabilirsiniz.

Genel logrotate için:

sudo logrotate -v -f /etc/logrotate.conf

Tek bir conf dosyası için:

sudo logrotate -v -f /etc/logrotate.d/someapp.conf

11
-fkuvvet rotasyon -diçin, aynı zamanda Kuru çalışma olan hata ayıklama için de vardır , bu yapacağı her şeyi basar, ancak yapmaz.
ThorSummoner

5

Nginx için logrotate ayarlaması için CentOS 6.5 makinemde bunu yapmak zorunda kaldım:

logrotate /etc/logrotate.d/nginx

Ardından logrotate'in yeni nginx config ile şu şekilde ilgilenip ilgilenmediğini kontrol ettim:

cat /var/lib/logrotate.status
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.