Le problème avec logrotate est qu'il a un fichier de configuration globale et qu'il ne vous permet PAS d'exécuter un seul fichier de sous-configuration de rotation de journal tout en appliquant les options définies dans le fichier de configuration globale. C'est-à-dire qu'il n'a pas un bon moyen d'exécuter une seule vérification du fichier de rotation des journaux, exactement comme il le ferait chaque nuit à partir de cron. Il pourrait s'agir d'une option «limiter ces fichiers journaux», ou mieux encore, «exécuter la configuration globale, mais uniquement inclure ce fichier de sous-configuration».
notez que cela --forcefera tourner les fichiers même s'ils ne répondent pas aux critères spécifiés tels que la taille, l'âge, etc.
xofer
4
Si vous placez le fichier de configuration logrotate dans /etc/logrotate.d/custom.conf, cela signifie-t-il que vous n'avez pas besoin de spécifier une taille / heure à laquelle le journal doit tourner automatiquement? Ou devriez-vous placer la configuration dans un dossier différent si vous n'avez pas l'intention de la faire tourner automatiquement?
Damainman
18
Le critère "notifempty" n'est pas ignoré par "--force". Cela m'a dérouté pendant un certain temps, donc je mentionne cela comme une exception à la déclaration @xofer.
thelogix
16
Vous pouvez simplement faire pivoter tout avec logrotate --force /etc/logrotate.d/(juste le nom du répertoire)
fcm
1
Il est vrai que --forcecela forcera la rotation même si les fichiers ne répondent pas aux critères (âge, taille, etc.), mais veuillez considérer que c'est le seul moyen de repérer les problèmes réels avec lesquels n'apparaîtrait pas logrotate -d(par exemple, j'avais un serveur à court de l'espace en raison de logrotate ne fonctionne pas depuis des mois ... et grâce à --forcej'ai compris qu'il y avait des File existserreurs. J'ai supprimé manuellement ces fichiers et maintenant la rotation fonctionne à nouveau correctement!
lucaferrario
559
logrotate -d [your_config_file] invoque le mode débogage, vous donnant une description détaillée de ce qui se passerait, mais en laissant les fichiers journaux intacts.
ceux qui sont venus ici à la recherche d'une réponse à une question comme "comment puis-je tester ma conf logrotate?" peut prendre celui-ci comme une réponse, car il
teste
pas gêné par votre approche, j'ai essayé avec logrotate --forceet ça marche bien.
Benyamin Jafari
122
Si vous souhaitez forcer l'exécution d'un seul répertoire spécifique ou des fichiers journaux du démon, vous pouvez généralement trouver la configuration dans /etc/logrotate.d, et ils fonctionneront de manière autonome.
Gardez à l'esprit que la configuration globale spécifiée dans /etc/logrotate.confne s'appliquera pas, donc si vous faites cela, vous devez vous assurer de spécifier toutes les options que vous souhaitez dans le /etc/logrotate.d/[servicename]fichier de configuration spécifiquement.
Vous pouvez l'essayer avec -dpour voir ce qui se passerait:
logrotate -df /etc/logrotate.d/nginx
Ensuite, vous pouvez exécuter (en utilisant nginx comme exemple):
C'est bien beau, mais vous perdez tous les paramètres globaux que vous avez dans le "/etc/logrotate.conf". J'ai écrit un script pour fusionner les fichiers logrotate globaux et spécifiques, puis les utiliser pour résoudre ce problème. (voir ma réponse).
anthony
L'utilisation logrotate -d /etc/logrotate.confpassera également par tout autre fichier de configuration inclus.
Ce script exécutera uniquement le fichier de sous-configuration logrotate unique trouvé dans "/etc/logrotate.d", mais inclura les paramètres globaux dans le fichier de configuration globale "/etc/logrotate.conf". Vous pouvez également utiliser d'autres otpions pour le tester ...
Réponses:
Oui:
logrotate --force $CONFIG_FILE
la source
--force
fera tourner les fichiers même s'ils ne répondent pas aux critères spécifiés tels que la taille, l'âge, etc.logrotate --force /etc/logrotate.d/
(juste le nom du répertoire)--force
cela forcera la rotation même si les fichiers ne répondent pas aux critères (âge, taille, etc.), mais veuillez considérer que c'est le seul moyen de repérer les problèmes réels avec lesquels n'apparaîtrait paslogrotate -d
(par exemple, j'avais un serveur à court de l'espace en raison de logrotate ne fonctionne pas depuis des mois ... et grâce à--force
j'ai compris qu'il y avait desFile exists
erreurs. J'ai supprimé manuellement ces fichiers et maintenant la rotation fonctionne à nouveau correctement!logrotate -d [your_config_file]
invoque le mode débogage, vous donnant une description détaillée de ce qui se passerait, mais en laissant les fichiers journaux intacts.la source
logrotate --force
et ça marche bien.Si vous souhaitez forcer l'exécution d'un seul répertoire spécifique ou des fichiers journaux du démon, vous pouvez généralement trouver la configuration dans
/etc/logrotate.d
, et ils fonctionneront de manière autonome.Gardez à l'esprit que la configuration globale spécifiée dans
/etc/logrotate.conf
ne s'appliquera pas, donc si vous faites cela, vous devez vous assurer de spécifier toutes les options que vous souhaitez dans le/etc/logrotate.d/[servicename]
fichier de configuration spécifiquement.Vous pouvez l'essayer avec
-d
pour voir ce qui se passerait:Ensuite, vous pouvez exécuter (en utilisant nginx comme exemple):
Et les journaux nginx seuls seront tournés.
la source
logrotate -d /etc/logrotate.conf
passera également par tout autre fichier de configuration inclus.Vous pouvez l'exécuter en mode verbeux + force.
logrotate -vf /etc/logrotate.conf
la source
La façon d'exécuter tout logrotate est:
qui exécutera le fichier logrotate principal, qui inclut également les autres configurations logrotate
la source
Exécutez la commande suivante, la façon d'exécuter la rotation de journal spécifiée:
Options:
-v: afficher le processus
-f: forcer l'exécution
personnalisé: paramètre de journal défini par l'utilisateur
par exemple: mongodb-log
la source
éditez /var/lib/logrotate.status pour réinitialiser la date de «dernière rotation» sur le fichier journal que vous souhaitez tester.
Ensuite, courez
logrotate YOUR_CONFIG_FILE
.Ou vous pouvez utiliser l'indicateur --force, mais l'édition de logrotate.status vous donne plus de précision sur ce qui tourne et ne tourne pas.
la source
/var/lib/logrotate.status
fichier n'existe pas sur Debian Squeeze.Créé un script shell pour résoudre le problème.
http://www.ict.griffith.edu.au/anthony/software/#logrotate_one
Ce script exécutera uniquement le fichier de sous-configuration logrotate unique trouvé dans "/etc/logrotate.d", mais inclura les paramètres globaux dans le fichier de configuration globale "/etc/logrotate.conf". Vous pouvez également utiliser d'autres otpions pour le tester ...
Par exemple...
la source