Come rendere effettive le modifiche alla rotazione del registro


99

Ho seguito questo link per cambiare la configurazione del registro-rotazione per RHEL 6

Dopo aver apportato la modifica al file di configurazione, cosa devo fare per rendere effettivo questo?

Risposte:


139

logrotateusa crontabper funzionare. È un lavoro programmato, non un demone, quindi non è necessario ricaricare la sua configurazione.
Quando crontabviene eseguito logrotate, utilizzerà automaticamente il nuovo file di configurazione.
Se devi testare la tua configurazione puoi anche eseguire logrotateda solo con il comando:

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

O come menzionato nei commenti, identifica la logrotateriga nell'output del comando crontab -led esegui la riga di comando fai riferimento alla risposta di slm per avere una spiegazione cron.daily precisa


1
Solo per aggiungere alla tua risposta, la voce cron per logrotateè programmata per essere eseguita una volta al giorno.
mkc,

@Ketan, quindi, come posso influenzarlo immediatamente? grazie
BufBills,

Non sono sicuro. Una possibilità è quella di trovare la voce corrispondente da crontab tramite crontab -led eseguirla.
mkc,

2
Se vuoi che abbia effetto, esegui immediatamente le cronologie di cron.
slm

2
logrotateha -dun'opzione per il test (o "debug"), ti consiglio di eseguirlo almeno una volta.
FrustratedWithFormsDesigner,

36

La maggior parte delle logrotateconfigurazioni che ho visto in varie distro si esaurisce /etc/cron.daily. C'è uno script di shell lì chiamato in modo appropriato logrotate.

Esempio

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

Esecuzione manuale

Se vuoi farlo funzionare manualmente, esegui semplicemente lo script come root:

$ sudo /etc/cron.daily/logrotate

Se dai un'occhiata a uno script che di solito è lì, ti mostra come eseguire anche logrotatemanualmente, semplicemente eseguendo logrotate+ il percorso del suo file di configurazione.

#!/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

Dovrebbe essere automatico tramite cron. Puoi forzarlo per testare le tue modifiche.

Per logrotate globale:

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

Per un singolo file conf:

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

11
-fper la rotazione forzata, esiste anche il -ddebug, che è anche Dry run, stamperà tutto ciò che avrebbe fatto ma non lo farà effettivamente.
ThorSummoner,

5

Sulla mia macchina CentOS 6.5 per configurare logrotatefor nginx ho dovuto fare questo:

logrotate /etc/logrotate.d/nginx

E poi ho verificato se logrotate si prendesse cura della mia nuova configurazione nginx in questo modo:

cat /var/lib/logrotate.status
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.