Forum Linux.debian/ubuntu Question sur Logrotate - hourly truncate avec ajout de l'heure avant l'extension

Posté par .
Tags : aucun
0
21
juil.
2008
Bonjour, voila a ma boite je dois configurer logrotate pour qu'il puisse faire quelque chose de particulier:

il doit archiver le fichier de log du jour avec l'heure en extension toutes les heures...

Exemple pour le fichier 20080721.txt


20080721-0900.txt
20080721-1000.txt

pensez vous que ce soit possible et si oui comment feriez vous?

je pense que l'option hourly existe dans logrotate et je mettrais bien une commande pour renommer dans un postrotate.....

thx by advance
  • # cron

    Posté par . Évalué à 1.

    pour la fréquence d'exécution de logrotate, il suffit de changer la conf de ton cron pour qu'il soit lancé toutes les heures au lieu d'une seule fois par jour. Sur la plupart des distribs actuelles, ça revient à déplacer le script de logrotate de cron.daily à cron.hourly.

    En ce qui concerne le renommage des fichiers de conf, le problème, c'est que logrotate tourne sur des fichier dont le nom respecte le motif <nom_du_fichier>.. Si tu changes le motif en <nom_du_fichier>., tu pourras conserver 24 heures de log max.
    Si tu veux conserver sur plusieurs jours, ça t'oblige à rajouter le jour dans le motif de ton extension, mais du coup, ça sera à ta charge de changer le jour d'un fichier avant réécriture, parce que je ne pense que logrotate pourra le faire pour toi. Bref, ça veut dire rajouter la gestion du jour dans le pre rotate.

    Désolé si c'est un peu décousu, je réfléchis en même temps que j'écris =)

    bon, bref, en jouant juste avec post rotate, ça doit suffire pour gérer les logs sur 24, et en jouant sur pre/post rotate, ça doit pouvoir le faire sur plusieurs jours.

    Une autre méthode un peu imprécise mais éventuellement valable si les écritures dans ce fichier ont une volumétrie constante, c'est de jouer sur la taille max des logs ... quoique ... ça ne répondra pas à la problèmatique de nommage des logs en fonction de l'heure ...
    • [^] # Re: cron

      Posté par . Évalué à 2.

      oula ! je me rends compte que je divague un peu =)
      Vu qu'apparement, c'est pour archiver tout ces trucs là, ça ne pose pas de problème si logrotate ne retrouve pas les motifs de nom des fichiers.
      Du coup, le lancement en hourly et ton idée d'utiliser le postrotate me semble être une bonne solution.
  • # Question sur Logrotate - hourly truncate avec ajout de l'heure avant l'e

    Posté par . Évalué à 1.

    ok je suis plutot bien parti je pense bien qu'un script dans cron.hourly qui force tout simplement la commande "logrotate mon_fichier_de_conf" (specialement concu pour le fichier de log en question) sera la solution.

    Pour le renommage voila ce qui fonctionne:

    postrotate
    mv mon_fichier.txt mon_fichier`date +%H%M`.txt
    endscript

    Par contre la ou je peche encore c'est justement dans les paramètres de mon fichier_de_conf

    car le but de l'opération est le suivant:

    il faut que toutes les heures soit copié l'ensemble des log qui viennent de s'ajouter dans l'heure dans un nouveau fichier (qui sera justement renommer).

    donc j'ai chercher dans les paramètres a ordonner dans la man de logrotate mais pour l'instant j'ai rien trouver...

    une idée?

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.