logrotate – effectue la rotation, la compression et l’envoi par courrier des journaux système
SYNTAXE
logrotate [--force] [--debug] [--state fichier] [--skip-state-lock] [--wait-for-state-lock] [--verbose] [--log fichier] [--mail commande] fichier_config [fichier_config2 ...]
DESCRIPTION
logrotate est conçu pour faciliter l’administration des systèmes qui génèrent un grand nombre de fichiers journaux.
Il permet la rotation, la compression, la suppression et l’envoi par courrier des fichiers journaux de manière automatique. Chaque fichier journal peut être traité quotidiennement, hebdomadairement, mensuellement ou lorsque sa taille devient trop importante.
Normalement, logrotate est exécuté en tant que tâche cron quotidienne. Il ne modifiera pas un journal plus d’une fois par jour, sauf si le critère pour ce journal est basé sur la taille du journal et que logrotate est exécuté plus d’une fois par jour, ou sauf si l’option -f ou --force est utilisée.
Un nombre quelconque de fichiers de configuration peut être donné en ligne de commande. Les fichiers de configuration ultérieurs peuvent remplacer les options données dans les fichiers précédents, de sorte que l’ordre dans lequel les fichiers de configuration logrotate sont répertoriés est important. Normalement, un seul fichier de configuration qui inclut tous les autres fichiers de configuration nécessaires doit être utilisé. Voir ci-dessous pour plus d’informations sur la façon d’utiliser la directive include pour y parvenir. Si un répertoire est donné en ligne de commande, chaque fichier de ce répertoire est utilisé comme fichier de configuration.
Si aucun argument en ligne de commande n’est donné, logrotate affichera la version et les informations sur les droits d’auteur, ainsi qu’un bref résumé de l’utilisation. Si des erreurs se produisent lors de la rotation des journaux, logrotate quittera avec un statut non nul, bien que le fichier d’état soit mis à jour.
OPTIONS
-f, --force
Indique à logrotate de forcer la rotation, même s’il ne pense pas que cela soit nécessaire. Cela est parfois utile après avoir ajouté de nouvelles entrées à un fichier de configuration logrotate, ou si les anciens fichiers journaux ont été supprimés manuellement, car les nouveaux fichiers seront créés et l’enregistrement se poursuivra correctement.
-d, --debug
Active le mode débogage, ce qui signifie qu’aucune modification n’est apportée aux journaux et que le fichier d’état logrotate n’est pas mis à jour. Seuls les messages de débogage sont affichés.
-s, --state fichier_état
Indique à logrotate d’utiliser un fichier d’état alternatif. Ceci est utile si logrotate est exécuté en tant qu’utilisateur différent pour différents ensembles de fichiers journaux. Pour éviter l’exécution parallèle, logrotate acquiert par défaut un verrou sur le fichier d’état. S’il ne peut pas l’acquérir, logrotate quittera avec la valeur 3. Le fichier d’état par défaut est /var/lib/logrotate/status. Si /dev/null est donné comme fichier d’état, logrotate n’essaiera pas de verrouiller ou d’écrire dans le fichier d’état.
--skip-state-lock
Ne pas verrouiller le fichier d'état, par exemple si le verrouillage n'est pas pris en charge ou est interdit.
--wait-for-state-lock
Attendre que le verrou sur le fichier d'état soit levé par un autre processus logrotate. Cette option peut amener logrotate à attendre indéfiniment. À utiliser avec prudence.
-v, --verbose
Active le mode verbeux, par exemple pour afficher les messages pendant la rotation.
-l, --log file
Indique à logrotate d'enregistrer la sortie verbeuse dans le fichier log. La sortie verbeuse enregistrée dans ce fichier est la même que lorsque logrotate est exécuté avec l'option -v. Le fichier log est réécrit à chaque exécution de logrotate.
-m, --mail command
Indique à logrotate quelle commande utiliser pour envoyer les journaux par e-mail. Cette commande doit accepter les arguments suivants :
1. l'objet du message donné avec l'option '-s subject'
2. le destinataire.
La commande doit ensuite lire un message sur l'entrée standard et l'envoyer par e-mail au destinataire. La commande par défaut est /usr/bin/mail.
--usage
Affiche un bref message d'utilisation.
-?, --help
Affiche le message d'aide.
--version
Affiche les informations de version.
FICHIER DE CONFIGURATION
logrotate lit toutes les informations sur les fichiers journaux qu'il doit gérer à partir de la série de fichiers de configuration spécifiés sur la ligne de commande. Chaque fichier de configuration peut définir des options globales (les définitions locales remplacent les définitions globales, et les définitions ultérieures remplacent les définitions antérieures). Les options globales n'affectent pas les directives d'inclusion précédentes. Un fichier de configuration simple ressemble à ceci :
# exemple de fichier de configuration logrotate
compress
/var/log/messages {
rotate 5
weekly
postrotate
/usr/bin/killall -HUP syslogd
endscript
}
"/var/log/httpd/access.log" /var/log/httpd/error.log {
rotate 5
mail _
size 100k
sharedscripts
postrotate
/usr/bin/killall -HUP httpd
endscript
}
/var/log/news/* {
monthly
rotate 2
olddir /var/log/news/old
missingok
sharedscripts
postrotate
kill -HUP $(cat /var/run/inn.pid)
endscript
nocompress
}
~/log/*.log {}
Les premières lignes définissent les options globales ; dans l'exemple, les journaux sont compressés après avoir été tournés. Notez que les commentaires peuvent apparaître n'importe où dans le fichier de configuration tant que le premier caractère non-espace sur la ligne est un #.
Les valeurs sont séparées des directives par des espaces et/ou un = facultatif. Les nombres doivent être spécifiés dans un format compris par strtoul(3).
La section suivante du fichier de configuration définit comment gérer le fichier journal /var/log/messages. Le journal sera soumis à cinq rotations hebdomadaires avant d'être supprimé. Après que le fichier journal a été tourné (mais avant que l'ancienne version du journal ait été compressée), la commande /usr/bin/killall -HUP syslogd sera exécutée.
La section suivante définit les paramètres pour /var/log/httpd/access.log et /var/log/httpd/error.log. Chacun est tourné chaque fois qu'il dépasse 100 kilooctets, et les anciens fichiers journaux sont envoyés (non compressés) à _ après avoir été soumis à 5 rotations, au lieu d'être supprimés. L'option sharedscripts signifie que le script postrotate ne sera exécuté qu'une seule fois pour cette section, et non une fois pour chaque journal qui est tourné. Notez que les noms de fichiers journaux peuvent être placés entre guillemets (et que les guillemets sont nécessaires si le nom contient des espaces). Les règles d'échappement de shell normales s'appliquent, avec les caractères ', ", et \ pris en charge.
La section suivante définit les paramètres de tous les fichiers dans /var/log/news. Chaque fichier est tourné sur une base mensuelle.
La dernière section utilise l'expansion de la tilde pour effectuer la rotation des fichiers journaux dans le répertoire personnel de l'utilisateur actuel. Ceci n'est disponible que si votre bibliothèque glob prend en charge l'expansion de la tilde. GNU glob la prend en charge.
Veuillez utiliser les caractères génériques avec prudence. Si vous spécifiez *, logrotate effectuera la rotation de tous les fichiers, y compris ceux qui ont déjà été tournés. Une solution consiste à utiliser la directive olddir ou un caractère générique plus précis (tel que *.log).
Veuillez noter que, par défaut, lorsque vous utilisez systemd(1), l'option ProtectSystem=full est définie dans le fichier logrotate.service. Cela empêche logrotate de modifier les journaux dans /etc et /usr.
Voici plus d'informations sur les directives qui peuvent être incluses dans un fichier de configuration logrotate :
DIRECTIVES DU FICHIER DE CONFIGURATION
Ces directives peuvent être incluses dans un fichier de configuration logrotate :
Rotation
rotate count
Les fichiers journaux sont tournés count fois avant d'être supprimés ou envoyés par courrier à l'adresse spécifiée dans une directive mail. Si count est 0, les anciennes versions sont supprimées au lieu d'être tournées. Si count est -1, les anciens journaux ne sont pas supprimés, sauf qu'ils sont affectés par maxage (à utiliser avec prudence, cela peut gaspiller les performances et l'espace disque). La valeur par défaut est 0.
olddir directory
Les journaux sont déplacés dans le répertoire pour la rotation. Le répertoire doit se trouver sur le même périphérique physique que le fichier journal en cours de rotation, sauf si les options copy, copytruncate ou renamecopy sont utilisées. Le répertoire est supposé être relatif au répertoire contenant le fichier journal, sauf si un chemin absolu est spécifié. Lorsque cette option est utilisée, toutes les anciennes versions du journal se trouvent dans le répertoire. Cette option peut être remplacée par l'option noolddir.
noolddir
Les journaux sont tournés dans le répertoire dans lequel ils se trouvent normalement (cela remplace l'option olddir).
su user group
Effectuez la rotation des fichiers journaux en utilisant l'utilisateur et le groupe spécifiés au lieu d'utiliser l'utilisateur/groupe par défaut (généralement root). user spécifie l'utilisateur utilisé pour la rotation et group spécifie le groupe utilisé pour la rotation (voir la section UTILISATEUR ET GROUPE pour plus de détails). Si l'utilisateur/groupe que vous spécifiez ici n'a pas les privilèges suffisants pour créer des fichiers avec la propriété que vous avez spécifiée dans une directive create, cela entraînera une erreur. Si logrotate s'exécute avec les privilèges root, il est recommandé d'utiliser la directive su pour effectuer la rotation des fichiers dans des répertoires qui sont directement ou indirectement sous le contrôle d'utilisateurs non privilégiés.
Fréquence
hourly Les fichiers journaux sont tournés toutes les heures. Notez que généralement logrotate est configuré pour être exécuté par cron quotidiennement (ou par logrotate.timer lorsque vous utilisez [systemd]({filename}../../systemd)(1)). Vous devez modifier cette configuration et exécuter logrotate toutes les heures pour pouvoir réellement effectuer la rotation des journaux toutes les heures.
daily Les fichiers journaux sont archivés quotidiennement.
weekly [jour de la semaine]
Les fichiers journaux sont archivés une fois par jour de la semaine, ou si la date a avancé d’au moins 7 jours depuis la dernière archivage (sans tenir compte de l’heure exacte). L’interprétation du jour de la semaine est la suivante : 0 correspond à dimanche, 1 à lundi, ..., 6 à samedi ; la valeur spéciale 7 correspond à tous les 7 jours, quel que soit le jour de la semaine. Par défaut, si l’argument jour de la semaine est omis, la valeur est 0.
monthly
Les fichiers journaux sont archivés la première fois que logrotate est exécuté dans le mois (généralement le premier jour du mois).
yearly Les fichiers journaux sont archivés si l’année en cours est différente de la dernière archivage.
size taille
Les fichiers journaux sont archivés uniquement s’ils dépassent la taille spécifiée en octets. Si « taille » est suivi de « k », la taille est supposée être en kilooctets. Si « M » est utilisé, la taille est en mégaoctets, et si « G » est utilisé, la taille est en gigaoctets. Ainsi, taille 100, taille 100k, taille 100M et taille 100G sont tous des exemples valides. Cette option est mutuellement exclusive avec les options d’intervalle de temps, et elle provoque l’archivage des fichiers journaux sans tenir compte de l’heure de la dernière archivage, si elle est spécifiée après les critères de temps (la dernière option spécifiée est prioritaire).
Sélection de fichiers
missingok
Si le fichier journal est manquant, passer au fichier suivant sans émettre de message d’erreur. Voir également nomissingok.
nomissingok
Si un fichier journal n’existe pas, afficher une erreur. C’est le comportement par défaut.
ignoreduplicates
Ignorer toutes les correspondances suivantes du fichier journal.
ifempty
Archiver le fichier journal même s’il est vide, en annulant l’option notifempty (ifempty est la valeur par défaut).
notifempty
Ne pas archiver le fichier journal s’il est vide (cela annule l’option ifempty).
minage nombre
Ne pas archiver les journaux qui ont moins de
maxage nombre
Supprimer les journaux archivés qui ont plus de
minsize taille
Les fichiers journaux sont archivés lorsque leur taille dépasse la taille spécifiée en octets, mais pas avant l’intervalle de temps spécifié (quotidien, hebdomadaire, mensuel ou annuel). L’option taille associée est similaire, sauf qu’elle est mutuellement exclusive avec les options d’intervalle de temps, et elle provoque l’archivage des fichiers journaux sans tenir compte de l’heure de la dernière archivage, si elle est spécifiée après les critères de temps (la dernière option spécifiée est prioritaire). Lorsque minsize est utilisé, la taille et l’horodatage du fichier journal sont pris en compte.
maxsize taille
Les fichiers journaux sont archivés lorsqu’ils dépassent la taille spécifiée en octets, même avant l’intervalle de temps spécifié (quotidien, hebdomadaire, mensuel ou annuel). L’option taille associée est similaire, sauf qu’elle est mutuellement exclusive avec les options d’intervalle de temps, et elle provoque l’archivage des fichiers journaux sans tenir compte de l’heure de la dernière archivage, si elle est spécifiée après les critères de temps (la dernière option spécifiée est prioritaire). Lorsque maxsize est utilisé, la taille et l’horodatage du fichier journal sont pris en compte.
tabooext [+] liste
La liste actuelle des extensions interdites est modifiée (voir la directive include pour plus d’informations sur les extensions interdites). Si un + précède la liste des extensions, la liste actuelle des extensions interdites est augmentée, sinon elle est remplacée. Au démarrage, la liste des extensions interdites est : ,v, .bak, .cfsaved, .disabled, .dpkg-bak, .dpkg-del, .dpkg-dist, .dpkg-new, .dpkg-old, .dpkg-tmp, .new, .old, .orig, .rhn-cfg-tmp-*, .rpmnew, .rpmorig, .rpmsave, .swp, .ucf-dist, .ucf-new, .ucf-old, ~
taboopat [+] liste
La liste actuelle des motifs glob interdits est modifiée (voir la directive include pour plus d’informations sur les extensions et les motifs interdits). Si un + précède la liste des motifs, la liste actuelle des motifs interdits est augmentée, sinon elle est remplacée. Au démarrage, la liste des motifs interdits est vide.
Fichiers et dossiers
create mode owner group, create owner group
Immédiatement après la rotation (avant l’exécution du script postrotate), le fichier journal est créé (avec le même nom que le fichier journal qui vient d’être tourné). mode spécifie le mode du fichier journal en octal (comme chmod(2)), owner spécifie l’utilisateur qui sera le propriétaire du fichier journal, et group spécifie le groupe auquel le fichier journal appartiendra (voir la section UTILISATEUR ET GROUPE pour plus de détails). Tous les attributs du fichier journal peuvent être omis, auquel cas les attributs du nouveau fichier utiliseront les mêmes valeurs que le fichier journal d’origine pour les attributs omis. Cette option peut être désactivée à l’aide de l’option nocreate.
nocreate
Les nouveaux fichiers journaux ne sont pas créés (cela annule l’option create).
createolddir mode [owner [group]], createolddir [owner [group]]
Si le répertoire spécifié par la directive olddir n’existe pas, il est créé. mode spécifie le mode du répertoire olddir en octal (comme chmod(2)), owner spécifie l’utilisateur qui sera le propriétaire du répertoire olddir, et group spécifie le groupe auquel le répertoire olddir appartiendra (voir la section UTILISATEUR ET GROUPE pour plus de détails). Si mode n’est pas spécifié, 0755 est supposé. Cette option peut être désactivée à l’aide de l’option nocreateolddir.
nocreateolddir
Le répertoire olddir n’est pas créé par logrotate lorsqu’il n’existe pas.
copy Crée une copie du fichier journal, mais ne modifie pas l’original. Cette option peut être utilisée, par exemple, pour créer un instantané du fichier journal actuel, ou lorsqu’un autre utilitaire doit tronquer ou analyser le fichier. Lorsque cette option est utilisée, l’option create n’aura aucun effet, car l’ancien fichier journal reste en place. L’option copy permet de stocker les fichiers journaux tournés sur différents périphériques à l’aide de la directive olddir.
nocopy Ne copiez pas le fichier journal d’origine et laissez-le en place (cela annule l’option copy).
copytruncate
Tronque le fichier journal original à une taille de zéro octet sur place après avoir créé une copie, au lieu de déplacer l’ancien fichier journal et de créer éventuellement un nouveau. Il peut être utilisé lorsque certains programmes ne peuvent pas être invités à fermer leur fichier journal et pourraient ainsi continuer à écrire (ajouter) indéfiniment dans l’ancien fichier journal. Notez qu’il existe une très petite tranche de temps entre la copie du fichier et sa troncature, de sorte que certaines données de journalisation peuvent être perdues. Lorsque cette option est utilisée, l’option create n’aura aucun effet, car l’ancien fichier journal reste en place. L’option copytruncate permet de stocker les fichiers journaux rotatifs sur différents périphériques en utilisant la directive olddir. L’option copytruncate implique norenamecopy.
nocopytruncate
Ne tronque pas le fichier journal original sur place après avoir créé une copie (cela annule l’option copytruncate).
renamecopy
Le fichier journal est renommé en un nom de fichier temporaire dans le même répertoire en lui ajoutant l’extension « .tmp ». Après cela, le script postrotate est exécuté et le fichier journal est copié du nom de fichier temporaire vers le nom de fichier final. Enfin, le nom de fichier temporaire est supprimé. L’option renamecopy permet de stocker les fichiers journaux rotatifs sur différents périphériques en utilisant la directive olddir. L’option renamecopy implique nocopytruncate.
norenamecopy
Ne renomme ni ne copie pas le fichier journal original (cela annule l’option renamecopy).
shred
Supprime les fichiers journaux en utilisant shred -u au lieu de unlink(). Cela permet de garantir que les journaux ne sont pas lisibles après leur suppression planifiée ; cette option est désactivée par défaut. Voir également noshred.
noshred
N’utilisez pas shred pour supprimer les anciens fichiers journaux. Voir également shred.
shredcycles count
Demande à GNU [shred]({filename}../../shred)(1) de remplacer les fichiers journaux count fois avant de les supprimer. Sans cette option, la valeur par défaut de shred sera utilisée.
allowhardlink
Fait pivoter les fichiers avec plusieurs liens physiques ; cette option est désactivée par défaut. Le fichier cible peut être vidé, par exemple avec shred ou copytruncate. Utilisez-la avec prudence, en particulier lorsque les fichiers journaux sont en rotation en tant que root.
noallowhardlink
Ne faites pas pivoter les fichiers avec plusieurs liens physiques. Voir également allowhardlink.
Compression
compress
Les anciennes versions des fichiers journaux sont compressées avec [gzip]({filename}../../gzip)(1) par défaut. Voir également nocompress.
nocompress
Les anciennes versions des fichiers journaux ne sont pas compressées. Voir également compress.
compresscmd
Spécifie la commande à utiliser pour compresser les fichiers journaux. La valeur par défaut est [gzip]({filename}../../gzip)(1). Voir également compress.
uncompresscmd
Spécifie la commande à utiliser pour décompresser les fichiers journaux. La valeur par défaut est gunzip(1).
compressext
Spécifie l’extension à utiliser sur les fichiers journaux compressés, si la compression est activée. La valeur par défaut suit celle de la commande de compression configurée.
compressoptions
Des options de ligne de commande peuvent être transmises au programme de compression, si l’un est utilisé. La valeur par défaut, pour [gzip]({filename}../../gzip)(1), est « -6 » (privilégie une compression élevée au détriment de la vitesse). Si vous utilisez une commande de compression différente, vous devrez peut-être modifier les compressoptions pour qu’elles correspondent.
delaycompress
Reporter le processus de compression du fichier journal précédent au cycle de rotation suivant. Cela n’a d’effet que lorsqu’il est utilisé en combinaison avec l’option compress. Cela peut être utilisé lorsqu’un programme ne peut pas être invité à fermer son fichier journal et pourrait ainsi continuer à écrire dans le fichier journal précédent pendant un certain temps.
nodelaycompress
Ne pas reporter le processus de compression du fichier journal précédent au cycle de rotation suivant (cela annule l’option delaycompress).
Noms de fichiers
extension ext
Les fichiers journaux avec l’extension ext peuvent conserver cette extension après la rotation. Si la compression est utilisée, l’extension de compression (normalement .gz) apparaît après ext. Par exemple, si vous avez un fichier journal nommé mylog.foo et que vous souhaitez le faire pivoter vers mylog.1.foo.gz au lieu de mylog.foo.1.gz.
addextension ext
Les fichiers journaux reçoivent l’extension finale ext après la rotation. Si le fichier d’origine se termine déjà par ext, l’extension n’est pas dupliquée, mais simplement déplacée à la fin, c’est-à-dire que filename et filenameext seraient tous deux pivotés vers filename.1ext. Si la compression est utilisée, l’extension de compression (normalement .gz) apparaît après ext.
start count
C’est le nombre à utiliser comme base pour la rotation. Par exemple, si vous spécifiez 0, les journaux seront créés avec une extension .0 lorsqu’ils sont pivotés à partir des fichiers journaux d’origine. Si vous spécifiez 9, les fichiers journaux seront créés avec une extension .9, en sautant 0 à 8. Les fichiers seront toujours pivotés le nombre de fois spécifié avec la directive rotate.
dateext
Archiver les anciennes versions des fichiers journaux en ajoutant une extension de date telle que AAAA-MM-JJ au lieu d’ajouter simplement un nombre. L’extension peut être configurée à l’aide des options dateformat et dateyesterday.
nodateext
Ne pas archiver les anciennes versions des fichiers journaux avec une extension de date (cela annule l’option dateext).
dateformat format_string
Spécifier l’extension pour dateext en utilisant la notation similaire à la fonction strftime(3). Seuls les spécificateurs %Y %m %d %H %M %S %V %s et %z sont autorisés. La valeur par défaut est -AAAA-MM-JJ, sauf pour les rotations horaires, qui utilisent -AAAA-MM-JJHH comme valeur par défaut. Notez que le caractère séparant le nom du fichier journal de l’extension fait également partie de la chaîne dateformat. L’horloge système doit être réglée après le 9 septembre 2001 pour que %s fonctionne correctement. Notez que les horodatages générés par ce format doivent être triables lexicographiquement (c’est-à-dire d’abord l’année, puis le mois, puis le jour. Par exemple, 2001/12/01 est correct, mais 01/12/2001 ne l’est pas, car 01/11/2002 serait trié plus bas alors qu’il est plus récent). Ceci est dû au fait que lorsque l’option rotate est utilisée, logrotate trie tous les noms de fichiers pivotés pour déterminer quels fichiers journaux sont plus anciens et doivent être supprimés.
dateyesterday
Utiliser la date d’hier au lieu de la date d’aujourd’hui pour créer l’extension dateext, de sorte que le fichier journal pivoté ait une date dans son nom qui est la même que les horodatages qu’il contient.
datehourago
Utiliser l'heure au lieu de la date actuelle pour créer l'extension dateext, afin que le nom du fichier journal en rotation contienne l'heure correspondante aux horodatages qu'il contient. Utile pour une rotation horaire.
mail address
Lorsqu'un journal est supprimé, il est envoyé par e-mail à l'adresse indiquée. Si aucun e-mail ne doit être généré pour un journal particulier, la directive nomail peut être utilisée.
nomail Ne pas envoyer les anciens fichiers journaux par e-mail.
mailfirst
Lors de l'utilisation de la commande mail, envoyer le fichier nouvellement supprimé, au lieu du fichier sur le point d'être supprimé.
maillast
Lors de l'utilisation de la commande mail, envoyer le fichier sur le point d'être supprimé, au lieu du fichier nouvellement supprimé (c'est la valeur par défaut).
Fichiers de configuration supplémentaires
include file_or_directory
Lit le fichier spécifié en argument comme s'il était inclus en ligne à l'endroit où apparaît la directive include. Si un répertoire est donné, la plupart des fichiers de ce répertoire sont lus par ordre alphabétique avant que le traitement du fichier incluant ne se poursuive. Les seuls fichiers qui sont ignorés sont ceux qui ne sont pas des fichiers réguliers (tels que les répertoires et les tubes nommés) et les fichiers dont les noms se terminent par l'une des extensions ou des modèles tabous, comme spécifié par les directives tabooext ou taboopat, respectivement. Le chemin donné peut commencer par ~/ pour le rendre relatif au répertoire personnel de l'utilisateur qui exécute la commande. Pour des raisons de sécurité, les fichiers de configuration ne doivent pas être accessibles en écriture par le groupe ou par le monde entier.
Scripts
sharedscripts
Normalement, les scripts prerotate et postrotate sont exécutés pour chaque journal qui est supprimé et le chemin absolu du fichier journal est transmis en tant que premier argument au script. Cela signifie qu'un seul script peut être exécuté plusieurs fois pour les entrées de fichier journal qui correspondent à plusieurs fichiers (comme dans l'exemple /var/log/news/*). Si sharedscripts est spécifié, les scripts ne sont exécutés qu'une seule fois, quel que soit le nombre de journaux qui correspondent au modèle générique, et le modèle complet est transmis à ces derniers. Cependant, si aucun des journaux du modèle n'a besoin d'être supprimé, les scripts ne seront pas exécutés du tout. Si les scripts se terminent avec une erreur (ou si un journal échoue à la rotation), les actions restantes ne seront pas exécutées pour aucun des journaux. Cette option remplace l'option nosharedscripts.
nosharedscripts
Exécuter les scripts prerotate et postrotate pour chaque fichier journal qui est supprimé (c'est la valeur par défaut et elle remplace l'option sharedscripts). Le chemin absolu du fichier journal est transmis en tant que premier argument au script. Le chemin absolu du fichier journal final supprimé est transmis en tant que deuxième argument au script postrotate. Si les scripts se terminent avec une erreur, les actions restantes ne seront pas exécutées pour le journal affecté uniquement.
firstaction
script
endscript
Le script est exécuté une seule fois avant que tous les fichiers journaux qui correspondent au modèle générique ne soient supprimés, avant que le script prerotate ne soit exécuté et uniquement si au moins un journal sera effectivement supprimé. Ces directives ne peuvent apparaître que dans une définition de fichier journal. Le modèle complet est transmis au script en tant que son premier argument. Si le script se termine avec une erreur, aucun traitement supplémentaire n'est effectué. Voir également lastaction et la section SCRIPTS.
lastaction
script
endscript
Le script est exécuté une seule fois après que tous les fichiers journaux correspondant au modèle générique ont été tournés, après l’exécution du script postrotate et uniquement si au moins un journal a été tourné. Ces directives ne peuvent apparaître que dans la définition d’un fichier journal. Le modèle complet est transmis au script en tant que son premier argument. Si le script se termine avec une erreur, seul un message d’erreur est affiché (puisque c’est la dernière action). Voir également firstaction et la section SCRIPTS.
prerotate
script
endscript
Le script est exécuté avant que le fichier journal et ses anciens journaux ne soient tournés et uniquement si le journal sera réellement tourné. Ces directives ne peuvent apparaître que dans la définition d’un fichier journal. Normalement, le chemin absolu du fichier journal est transmis en tant que premier argument au script. Si sharedscripts est spécifié, le modèle complet est transmis au script. Voir également postrotate et la section SCRIPTS. Voir sharedscripts et nosharedscripts pour la gestion des erreurs.
postrotate
script
endscript
Le script est exécuté après que le fichier journal a été tourné et avant que le fichier journal ne soit compressé. Ces directives ne peuvent apparaître que dans la définition d’un fichier journal. Normalement, le chemin absolu du fichier journal est transmis en tant que premier argument au script et le chemin absolu du fichier journal tourné final est transmis en tant que deuxième argument au script. Si sharedscripts est spécifié, le modèle complet est transmis en tant que premier argument au script, et le deuxième argument est omis. Voir également prerotate et la section SCRIPTS. Voir sharedscripts et nosharedscripts pour la gestion des erreurs.
preremove
script
endscript
Le script est exécuté une seule fois, juste avant la suppression d’un fichier journal. Logrotate transmettra le nom du fichier qui sera bientôt supprimé en tant que premier argument au script. Voir également firstaction et la section SCRIPTS.
SCRIPTS
Les lignes comprises entre le mot-clé de départ (par exemple, prerotate) et endscript (qui doivent tous deux apparaître sur des lignes distinctes) sont exécutées (à l’aide de /bin/sh). Le script hérite de certaines caractéristiques du processus logrotate, notamment stderr, stdout, le répertoire courant, l’environnement et le umask. Les scripts sont exécutés en tant qu’utilisateur et groupe qui ont invoqué le processus, indépendamment de toute directive su. Si l’indicateur --log a été spécifié, le descripteur de fichier 3 est le fichier journal. Le répertoire de travail actuel est non spécifié.
UTILISATEUR ET GROUPE
Les identifiants utilisateur et groupe sont d’abord résolus en essayant la représentation textuelle, et, si cela échoue, ensuite par la valeur numérique.
FICHIERS
/var/lib/logrotate/status Fichier d’état par défaut.
/etc/logrotate.conf Options de configuration.
VOIR AUSSI
chmod(2), gunzip(1), gzip(1), mail(1), shred(1), strftime(3), strtoul(3), [https://github.com/logrotate/logrotate]
AUTEURS
Erik Troan, Preston Brown, Jan Kaluza.
[https://github.com/logrotate/logrotate]