Est-il possible d'exécuter une itération de logrotate manuellement sans la planifier sur un certain intervalle?
Est-il possible d'exécuter une itération de logrotate manuellement sans la planifier sur un certain intervalle?
Réponses:
Oui: logrotate --force $CONFIG_FILE
--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 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 à --force
j'ai compris qu'il y avait des File 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.
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:
logrotate -df /etc/logrotate.d/nginx
Ensuite, vous pouvez exécuter (en utilisant nginx comme exemple):
logrotate -f /etc/logrotate.d/nginx
Et les journaux nginx seuls seront tournés.
logrotate -d /etc/logrotate.conf
passera également par tout autre fichier de configuration inclus.
La façon d'exécuter tout logrotate est:
logrotate -f /etc/logrotate.conf
qui exécutera le fichier logrotate principal, qui inclut également les autres configurations logrotate
Exécutez la commande suivante, la façon d'exécuter la rotation de journal spécifiée:
logrotate -vf /etc/logrotate.d/custom
Options:
-v: afficher le processus
-f: forcer l'exécution
personnalisé: paramètre de journal défini par l'utilisateur
par exemple: mongodb-log
# mongodb-log rotate
/data/var/log/mongodb/mongod.log {
daily
dateext
rotate 30
copytruncate
missingok
}
é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.
/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...
logrotate_one -d syslog