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?

BufBills
la source

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

Kiwy
la source
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
slm
la source
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
maskeda
la source
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
Raptor
la source