Comment faire en sorte que les changements de rotation / rotation prennent effet


99

J'ai suivi ce lien pour changer la configuration de rotation de journal pour RHEL 6

Après avoir modifié le fichier de configuration, que dois-je faire pour que cela prenne effet?

Réponses:


139

logrotateutilise crontabpour travailler. C'est un travail planifié, pas un démon, donc pas besoin de recharger sa configuration.
Quand le sera crontabexécuté logrotate, il utilisera automatiquement votre nouveau fichier de configuration.
Si vous avez besoin de tester votre configuration, vous pouvez également l'exécuter logrotatevous-même avec la commande:

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

Ou comme mentionné dans les commentaires, identifiez la logrotateligne dans le résultat de la commande crontab -let exécutez la ligne de commande, reportez-vous à la réponse de slm pour obtenir une explication cron.daily précise


1
Juste pour ajouter à votre réponse, l’entrée cron pour logrotateest programmée pour s’exécuter une fois par jour.
mkc

@Ketan, alors, comment puis-je l'affecter tout de suite? merci
BufBills

Pas certain. Une possibilité consiste à trouver l'entrée correspondante dans crontab via crontab -let à l'exécuter.
mkc

2
Si vous voulez que cela prenne effet immédiatement, lancez le programme cron afterwords.
slm

2
logrotatea une -doption pour tester (ou "débogage"), je vous recommande de l'exécuter au moins une fois avec cela.
FrustratedWithFormsDesigner

36

La plupart des logrotateconfigurations que j'ai vues sur diverses distributions sont épuisées /etc/cron.daily. Il y a un script shell bien nommé logrotate.

Exemple

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

Course manuelle

Si vous voulez le faire fonctionner manuellement, lancez simplement le script en tant que root:

$ sudo /etc/cron.daily/logrotate

Si vous regardez un script qui est généralement là, il vous montrera comment vous pouvez également exécuter logrotatemanuellement, en exécutant simplement logrotate+ le chemin de son fichier de configuration.

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

Cela devrait être automatique via cron. Vous pouvez le forcer à tester vos modifications.

Pour logrotate global:

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

Pour un seul fichier de configuration:

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

11
-fpour la rotation de la force, il y a aussi -dpour le débogage, qui est aussi un essai à sec, il imprimera tout ce qu'il aurait fait mais ne le fera pas réellement.
ThorSummoner

5

Sur ma machine CentOS 6.5 pour configurer logrotatefor nginx, je devais faire ceci:

logrotate /etc/logrotate.d/nginx

Et puis j'ai vérifié si logrotate prenait soin de ma nouvelle configuration nginx comme ceci:

cat /var/lib/logrotate.status
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.