7 votes

Comment exclure un service sous /etc/logrotate.d/ pour qu'il s'exécute avec la tâche principale de logrotate ?

J'ai un fichier sous logrotate.d que je voudrais ne pas exécuter lorsque le logrotate principal est en cours d'exécution. J'ai créé un travail séparé pour cela dans /etc/crontab

45 23   * * *   root    mv /var/log/RemoteSystems/*/*.log /var/log/Archiv/ && logrotate /etc/logrotate.d/test  

La tâche déplace les fichiers d'un répertoire à un autre, puis applique logrotate. J'aimerais que cette tâche s'exécute séparément de la tâche principale de logrotate dans le système d'exploitation. /etc/crontab . Le problème est que parce que "test" est sous /etc/logrotate.d/ il s'exécutera à nouveau avec le logrotate principal. Existe-t-il une commande que je puisse insérer dans logrotate.conf qui puisse exclure l'exécution de "test" ? Je sais que si j'ai le fichier "test" en dehors de /etc/logrotate.d je ne le ferai pas, mais j'aimerais garder "test" sur le même chemin.

6voto

Khaled Points 35208

Si vous regardez le manuel man logrotate.conf vous pouvez lire et trouver tabooext qui vous permet d'exclure certains fichiers avec des extensions spécifiques.

tabooext [+] list
     The current taboo extension list is changed (see the include directive for information on the taboo extensions). If a + precedes the
     list of extensions, the current taboo extension list is augmented, otherwise it is replaced. At startup, the  taboo  extension list
     contains  .rpmsave,  .rpmorig,  ~, .disabled, .dpkg-old, .dpkg-dist, .dpkg-new, .dpkg-bak, .dpkg-del, .cfsaved, .ucf-old, .ucf-dist,
     .ucf-new, .rpmnew, .swp, .cfsaved, .rhn-cfg-tmp-*

Vous pouvez choisir l'une des extensions exclues par défaut comme .disabled ou vous pouvez spécifier votre propre extension supplémentaire comme :

tabooext + .test

Tout ce que vous devez faire est de renommer votre fichier /etc/logrotate.d/test pour avoir une de ces extensions comme /etc/logrotate.d/test.disabled .

0 votes

Oui, je l'ai lu, mais je voudrais garder le nom tel qu'il est. Je pensais qu'il y avait peut-être une ligne que je pouvais ajouter dans logrotate.conf afin d'exclure le fichier "test"... il semble que non. Merci !

1 votes

@Ioan : Donc, vous voulez exclure un fichier sans faire de modification ! !!

1 votes

Je veux faire un changement, mais je pensais qu'il y avait peut-être une commande que je pouvais ajouter dans logrotate.conf. afin d'exclure "test". Il semble qu'il n'y en ait pas. Merci.

1voto

Kelly Elliotson Points 19

Vous pouvez modifier le fichier de configuration comme ci-dessous :

antes de

include /etc/logrotate.d

après

include /etc/logrotate.d/*.conf

Cela ne devrait faire que des fichiers se terminant par .conf in /etc/logrotate.d/ pour être récupéré par logrotate en excluant votre test fichier

Si vous avez déjà des fichiers dans /etc/logrotate.d/ utilisés par logrotate, ceux-ci devront être mis à jour pour inclure .conf

0voto

user403677 Points 1

En plaçant le fichier test dans le /etc/logrotate.d/ il va être récupéré par logrotate automatiquement.

Si vous voulez l'exécuter manuellement, vous pouvez le forcer à effectuer logrotate sur le fichier particulier, quel que soit son emplacement.

logrotate --force /tmp/test

/tmp/test est le nouvel emplacement du fichier.

0 votes

Je voudrais garder le fichier "test" sous logrotate.d/ Merci !

0voto

ggustafsson Points 1908

Si vous ne voulez pas toucher à "test", vous pouvez essayer de modifier l'adresse de l'utilisateur. include /etc/logrotate.d dans la directive /etc/logrotate.conf . Par défaut, il fait référence à un répertoire et analyse donc tous les fichiers de ce répertoire, à l'exception de certaines extensions de fichiers.

Ce que vous pouvez essayer est de modifier le répertoire include pour faire référence à des fichiers individuels sous /etc/logrotate.d, par exemple /etc/logrotate.d/apt, etc. Vous excluez "test" de cette liste. Je n'ai pas testé cela, mais cela peut valoir la peine d'essayer.

0 votes

Cela pourrait être une sollution. Le problème est que je ne suis pas le seul à administrer ce système et je pense que si quelqu'un ajoute un fichier sous /etc/logrotate.d/, il s'attendra à ce que cela fonctionne. En conclusion, je ne veux toucher à aucun paramètre global. Je ne l'ai pas encore testé, mais je vais peut-être créer un autre répertoire sous logrotate.d et mettre le fichier dans ce répertoire. D'après ce que j'ai compris, logrotate ne s'occupe pas des fichiers sous les répertoires. Merci !

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X