J'ai deux boîtes Debian différentes (i386 v AMD) et j'ai le même problème. logrotate ne fera pas tourner automatiquement mes journaux. Cela fonctionne bien quand je le force manuellement comme
/usr/sbin/logrotate -f /etc/logrotate.conf
mais ça ne me va pas.
Les paramètres n'ont pas été modifiés (au moins, je ne les ai pas modifiés), la boîte AMD est une nouvelle installation mais ne fera pas son travail.
Si vous avez remarqué un problème similaire, veuillez m'aider.
Mise à jour (sortie de certains serveurs):
logrotate -d
http://pastebin.com/e6AshtGq
ls -l /var/log
http://pastebin.com/Y2A4Li59
cat /etc/logrotate.conf
http://pastebin.com/1h7Uwctr
ls -l /etc/logrotate.d
http://pastebin.com/NvUAeszM
debian
logrotate
debian-squeeze
fabrik
la source
la source
...rsyslogd was HUPed...
ne suis pas sûr que cela signifie quelque chose.cron.daily
mais la rotation ne se produira pas.Réponses:
Vérifiez que votre logrotate est exécuté par cron.
Éditer:
De la discussion des commentaires - il semble que cron ne fonctionne pas correctement. J'ai eu un cronjob dans mon crontab sans utilisateur mais cela ne s'est révélé que lorsque j'ai redémarré le démon cron
Mes systèmes ubuntu et centos ont un
/etc/cron.daily/logrotate
fichier dont le contenu estMon / etc / crontab a la ligne suivante pour exécuter les tâches quotidiennes
la source
ps -ef | grep cron| grep -v grep
? Ajoutez un écho au début de /etc/cron.daily/logrotateecho "logrotate runing" >>/tmp/logrotate.out
et voyez s'il est créé.cron
est opérationnel mais n'exécutera pas le travail journalier de rotation. Si je lance/etc/cron.daily/logrotate
manuellement, cela fait tourner mes journaux,/tmp/logrotate.out
également écrits./etc/cron.daily/logrotate
donc j'ai ajouté un-f
paramètre pour forcer la rotation encore aujourd'hui matin mes journaux n'ont pas tourné.J'ai eu un problème similaire mais
crontab
fonctionnait et pour certains des répertoires de journaux,logrotate
mais pour certains, cela n'a pas fonctionné. Lorsque j'ai essayé d'exécuter le logrotate manuellement, j'ai reçu des messages d'erreur.Tous les
*.1.gz
fichiers avaient une taille de 0. J'ai supprimé manuellement tous les fichiers mentionnés dans le message d'erreur, j'ai exécuté àsudo /usr/sbin/logrotate -f /etc/logrotate.conf
nouveau et cela a fonctionné.Je pensais juste que je devrais partager cette solution alternative ici aussi, car c'était le premier résultat de recherche qui m'est venu lorsque je cherchais le problème, mais la solution suggérée n'a pas fonctionné pour moi. Peut-être que cela aide aussi ceux qui sont dans la même situation que moi.
la source
Je sais je sais. Fil de 5 ans.
Je pense que si cela revient assez haut dans les recherches, je contribuerai et donnerai ma solution au problème que j'ai rencontré. Mes tâches logrotate n'ont pas été gérées automatiquement sur l'un de mes serveurs. Forcer la rotation a bien fonctionné. J'ai trouvé une solution après avoir exécuté manuellement la commande de rotation quotidienne:
Ensuite, j'ai vu l'erreur qui empêchait les jobs logrorate de s'exécuter:
Oui, aussi simple que ça. J'avais deux fichiers définissant les mêmes journaux à faire pivoter (iptraf et iptraf-ng). Il suffit de supprimer l'une des définitions de logrotate en conflit pour iptraf.
Un autre problème pourrait être un fichier / etc / crontab bâclé. Ce qui signifie double ou triple vérifier la syntaxe sur ce fichier car il ne fournit aucune sortie, je pourrais trouver si la syntaxe est incorrecte. Quitte silencieusement après l'échec de la validation de la syntaxe.
J'espère que cela fait gagner du temps à quelqu'un.
la source
OK, j'ai eu un problème similaire.
"les journaux ne tournent pas?" mais en exécutant logrotate manuellement (ou en exécutant le
/etc/cron.daily
et cela les fait tourner très bien.Il semble donc que cron "ne fonctionne pas" quotidiennement. Impair. J'ai donc regardé dans le fichier journal où cron sort ses données et j'ai vu "le jeton d'authentification n'est plus valide; un nouveau requis" pour corriger ce problème particulier, voir ici
la source
J'ai vu cela se produire souvent au fil du temps à mesure que les services changent et que les options utilisées dans logrotate ont été supprimées, ce qui entraîne l'échec de logrotate chaque jour.
Pour vous donner une idée, le dernier correctif impliquait que l' option notifyempty dans le fichier logrotate d'apache n'était plus valide, entraînant à son tour l'arrêt complet de logrotate.
Bien que cela ait été couvert jusqu'à un certain point, je voudrais partager le processus que je traverse lors du suivi de ces problèmes:
#/usr/sbin/logrotate -f /etc/logrotate.conf
pour rechercher les erreurs (par exemple postfix: 3 'missingok'.) Le numéro de fichier et de ligne auquelil se réfère est le fichier dans le dossier logrotate.d.
# vi /etc/logrotate.d/postfix
:, supprimez l'option à l'origine du problème et enregistrez le fichier.Il y a des moments où la première étape ne produit rien, mais vous savez qu'il y a un problème. Étant donné que tout cela a commencé parce que les fichiers journaux d'un service n'étaient pas en rotation, vous pouvez regarder le processus logrotate à la recherche de ce service spécifique pour voir ce qui l'empêche de tourner. Pour ce faire, ajoutez la balise verbose à votre commande logrotate et regardez pour voir ce qui se passe dans ce dossier (le cas échéant).
la source
Vérifiez les paramètres de configuration de logrotation en conflit !!
J'avais du mal avec ce problème et j'ai finalement lu de très près une documentation sur logrotate, j'ai trouvé une documentation utile ici .
J'avais spécifié à la fois un paramètre Taille et un paramètre Intervalle de rotation , alors qu'en fait je ne voulais ni l'un ni l'autre. Je voulais que mes rotations se produisent exactement au moment où elles étaient programmées dans cron.
Alors, débarrassez-vous du paramètre Intervalle de rotation et taille . Ensuite, vous obtiendrez une rotation à chaque appel de logrotate sans avoir à la forcer.
EDIT : OK même cela ne fonctionne pas entièrement! Si le fichier journal est inférieur à un certain seuil, les journaux ne tournent pas. Donc, quand j'ai exécuté un travail cron qui tournait toutes les 2 minutes, il n'a pas fait tourner les journaux.
Vous pouvez voir des informations de débogage détaillées si vous exécutez
logrotate -d
. Cela fournit des informations de débogage très utiles.la source