logrotate — faire tourner, compresser et envoyer les
journaux système
logrotate [--force] [--debug] [--state
fichier] [--skip-state-lock] [--wait-for-state-lock]
[--verbose] [--log fichier] [--mail
commande] fich_conf [fich_conf2 ...]
logrotate est conçu pour faciliter l'administration
des systèmes qui génèrent un grand nombre de journaux.
Il automatise la rotation, la compression, la suppression et l'envoi des
journaux. Chaque journal peut être traité quotidiennement,
hebdomadairement, mensuellement ou quand il devient trop volumineux.
Normalement, logrotate est lancé en tant que
tâche quotidienne de cron(8). Il ne modifie pas un journal
plusieurs fois dans la même journée à moins que le
critère pour ce journal ne soit basé sur sa taille et que
logrotate ne soit lancé plusieurs fois par jour, ou à
moins que l'option -f ou --force ne soit utilisée.
La ligne de commande peut spécifier plusieurs fichiers de
configuration. Les derniers fichiers de configuration peuvent outrepasser
les options données dans les précédents, si bien que
l'ordre dans lequel les fichiers de configuration de logrotate sont
spécifiés est important. Normalement, il faudrait utiliser un
unique fichier de configuration qui inclurait tous les autres fichiers de
configuration nécessaires. Pour ce faire, voir ci-dessous pour plus
d'informations sur la façon d'utiliser la directive include.
Si la ligne de commande spécifie un répertoire, chaque fichier
que ce dernier contient sera utilisé comme fichier de
configuration.
Si la ligne de commande ne comporte aucun argument,
logrotate affiche les informations de version et de copyright, ainsi
qu'une aide succincte. Si une erreur survient pendant la rotation des
journaux, logrotate quittera avec un statut différent de
zéro, bien que le fichier d'état soit mis à jour.
- -f, --force
- Demander à logrotate de forcer la rotation, même s'il
ne l'estime pas nécessaire. Cela peut parfois s'avérer utile
après l'ajout de nouvelles entrées à un fichier de
configuration de logrotate, ou si d'anciens journaux ont
été supprimés à la main, auquel cas les
nouveaux fichiers seront créés, et la journalisation
continuera correctement.
- -d, --debug
- Passer en mode débogage, ce qui signifie que les journaux ne seront
pas modifiés et que le fichier d'état de logrotate ne
sera pas mis à jour. Les messages de débogage seront
seulement affichés.
- -s, --state
fich_état
- Demander à logrotate d'utiliser un autre fichier
d'état, ce qui peut s'avérer utile si logrotate est
lancé par différents utilisateurs pour des groupes de
fichiers journaux distincts. Pour prévenir une exécution
parallèle, logrotate va tenter par défaut d'obtenir
un verrouillage du fichier d'état ; s'il n'y parvient pas,
logrotate quittera avec un statut de 3. Le fichier
d'état par défaut est /var/lib/logrotate.status. Si
/dev/null est spécifié comme fichier d'état,
logrotate ne tentera ni d'écrire dans le fichier
d'état, ni de le verrouiller.
- --skip-state-lock
- Ne pas verrouiller le fichier d'état, par exemple si le
verrouillage est interdit ou non pris en charge.
- --wait-for-state-lock
- Attendre que le verrouillage du fichier d'état soit effectué
par un autre processus logrotate. Avec cette option,
logrotate peut attendre indéfiniment, et il faut donc
l'utiliser avec précaution.
- -v, --verbose
- Passer en mode affichage détaillé, par exemple pour afficher
des messages pendant la rotation.
- -l, --log
fichier
- Demander à logrotate d'enregistrer une sortie
détaillée dans le fichier journal. Cette sortie
détaillée est la même que celle qui est
affichée lorsque logrotate est lancé avec l'option
-v. Le fichier journal est écrasé à chaque
exécution de logrotate.
- -m, --mail
commande
- Indiquer à logrotate quelle commande utiliser pour envoyer
les journaux. Cette commande doit comporter les arguments
suivants :
- 1) le sujet du message sous la forme « -s
sujet »
2) le destinataire.
- La commande doit ensuite lire un message sur l'entrée standard et
l'envoyer au destinataire. La commande d'envoi par défaut est
/usr/bin/mail.
- --usage
- Afficher des informations d'utilisation succinctes.
- -?, --help
- Afficher l'aide.
- --version
- Afficher les informations de version.
logrotate obtient toutes les informations à propos
des journaux qu'il est censé traiter à partir de la liste de
fichiers de configuration spécifiée en ligne de commande.
Chaque fichier de configuration peut définir des options globales
(les options locales outrepassent les globales et les dernières
définitions outrepassent les précédentes) et
spécifier les journaux à faire tourner. Les options globales
n'affectent pas les directives d'inclusion qui les précèdent.
Un fichier de configuration simple ressemblera à ceci :
# exemple de fichier de configuration de 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 destinataire@example.org
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 cet exemple, les journaux sont compressés
après leur rotation. Remarquez que les commentaires peuvent
apparaître n'importe où dans le fichier de configuration
à partir du moment où le premier caractère de la ligne
autre qu'une espace est un croisillon #.
Les valeurs sont séparées des directives par une
espace ou un = optionnel. Les nombres doivent être
spécifiés dans un format pris en charge par
strtoul(3).
La section suivante du fichier de configuration décrit
comment traiter le journal /var/log/messages. Le journal passera par
cinq rotations hebdomadaires avant d'être supprimé.
Après la rotation du journal (mais avant que l'ancienne version du
journal ne soit compressée), la commande /usr/sbin/killall -HUP
syslogd sera exécutée.
La section suivante définit les paramètres pour les
journaux /var/log/httpd/access.log et
/var/log/httpd/error.log. Leur rotation intervient dès que
leur taille dépasse 100 ko, et les anciens journaux sont
envoyés (sans compression) à destinataire@example.org
après être passés par 5 rotations, au lieu
d'être supprimés. sharedscripts signifie que le script
postrotate ne sera exécuté qu'une seule fois et non
à chaque rotation d'un journal. Remarquez que les noms des fichiers
journaux peuvent être entourés de guillemets (et qu'ils
doivent l'être s'ils contiennent des espaces). Les
règles normales de mise entre guillemets de l'interpréteur de
commande s'appliquent, les caractères ', " et
\ étant pris en charge.
La section suivante définit les paramètres pour tous
les fichiers dans /var/log/news. La rotation de chaque fichier
s'effectue sur une base mensuelle
La dernière section utilise l'expansion du tilde ~
pour faire tourner les fichiers journaux situés dans le
répertoire personnel de l'utilisateur actuel. Cette configuration
n'est valable que si votre bibliothèque glob prend en charge
l'expansion du tilde, ce qui est le cas pour GNU glob.
Utilisez les caractères génériques avec
précaution. Si vous spécifiez *, logrotate fera
tourner tous les fichiers, y compris ceux qui viennent de tourner. Pour
contourner ce problème, vous pouvez utiliser la directive
olddir ou un nom générique plus restrictif (comme
*.log).
Notez que lorsqu'on utilise systemd(1), l'option
ProtectSystem=full est définie par défaut dans le
fichier logrotate.service, ce qui empêche logrotate de
modifier les journaux situés dans /etc et /usr.
Vous trouverez ci-après plus d'informations sur les
directives qui peuvent être définies dans un fichier de
configuration de logrotate :
Un fichier de configuration de logrotate peut contenir les
directives suivantes :
- rotate
nombre
- Les journaux sont mis en rotation nombre fois avant d'être
supprimés ou envoyés à l'adresse
précisée dans une directive mail. Si nombre
est égal à 0, les anciennes versions sont
supprimées au lieu d'être mises en rotation. Si
nombre est égal à -1, les anciens
journaux ne sont pas supprimés, à moins qu'ils ne soient
affectés par maxage (utiliser avec précaution, risque
de dégradation des performances et de l'espace disque).
nombre a pour valeur par défaut 0.
- olddir
répertoire
- Les journaux sont déplacés dans répertoire
pour rotation. Le répertoire doit être sur le
même périphérique physique que le journal en cours de
rotation, sauf si une des directives copy, copytruncate ou
renamecopy est spécifiée. répertoire
est supposé relatif au répertoire contenant le fichier
journal, sauf si un chemin absolu est spécifié. Quand cette
directive est utilisée, toutes les anciennes versions des journaux
finissent dans répertoire. Cette directive peut être
outrepassée par la directive noolddir.
- noolddir
- Les journaux sont mis en rotation dans le répertoire dans lequel
ils résident normalement (cette directive outrepasse la directive
olddir).
- su utilisateur
groupe
- Faire tourner le jeu de fichiers journaux sous l'utilisateur et le groupe
spécifiés au lieu de l'utilisateur/groupe par défaut
(en général root). utilisateur et
groupe spécifient respectivement l'utilisateur et le groupe
utilisés pour la rotation (voir la section UTILISATEUR ET
GROUPE pour les détails). Si l'utilisateur/groupe que vous avez
spécifié ici ne possède pas de privilèges
suffisants pour créer des fichiers avec l'appartenance que vous
avez spécifiée dans une directive create, une erreur
sera générée. Si logrotate s'exécute
avec les privilèges de root, il est conseillé
d'utiliser la directive su pour faire tourner les fichiers dans les
répertoires qui sont directement ou indirectement sous
contrôle d'utilisateurs non privilégiés.
- hourly
- Les fichiers journaux sont mis en rotation toutes les heures. Notez qu'en
général, logrotate est configuré pour
être exécuté par cron(8) quotidiennement (ou
par logrotate.timer lorsqu'on utilise systemd(1)). Vous
devez modifier cette configuration et exécuter logrotate
toutes les heures pour pouvoir effectivement faire tourner les journaux
toutes les heures.
- daily
- Les fichiers journaux sont mis en rotation tous les jours
- weekly
[jour_de_la_semaine]
- Les fichiers journaux sont mis en rotation une fois chaque
jour_de_la_semaine, ou si la date actuelle est postérieure
d'au moins 7 jours à la date de la dernière
rotation (tout en ignorant l'écart exact). L'interprétation
de jour_de_la_semaine est la suivante :
0 signifie dimanche, 1 signifie lundi, ...,
6 signifie samedi ; la valeur spéciale
7 signifie « tous les
7 jours », sans tenir compte du jour de la
semaine. Si l'argument jour_de_la_semaine est omis, sa valeur par
défaut est 0.
- monthly
- Les fichiers journaux sont mis en rotation à la première
exécution de logrotate au cours du mois (en
général le premier jour du mois).
- yearly
- Les fichiers journaux sont mis en rotation si l'année actuelle est
différente de l'année de la dernière rotation.
- size
taille
- Les fichiers journaux ne sont mis en rotation que s'ils dépassent
taille octets. Si taille est suivie de k, M ou
G, la taille sera respectivement en ko, Mo ou Go. Ainsi, les
directives size 100, size 100k,
size 100M et size 100G sont toutes valables.
Cette directive et les directives d'intervalle de temps sont mutuellement
exclusives ; cette directive fait tourner les fichiers journaux
sans tenir compte de la date de la dernière rotation, dans la
mesure où elle a été spécifiée
après le critère de temps (la dernière directive
spécifiée l'emporte sur les précédentes).
- missingok
- Si le fichier journal est manquant, continuer avec le suivant sans
afficher de message d'erreur. Voir aussi 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 d'un fichier journal.
- ifempty
- Faire tourner le fichier journal même s'il est vide en outrepassant
la directive notifempty (ifempty est la directive par
défaut).
- notifempty
- Ne pas faire tourner le fichier journal s'il est vide (outrepasse la
directive ifempty).
- minage
nombre
- Ne pas faire tourner les fichiers journaux qui datent de moins de
<nombre> jours.
- maxage
nombre
- Supprimer les fichiers journaux ayant subi une rotation et qui datent de
plus de <nombre> jours. L'âge n'est vérifié que
si le fichier journal doit être mis en rotation.
rotate -1 n'empêche pas la suppression. Les fichiers
sont envoyés à l'adresse spécifiée si
maillast et mail sont définies.
- minsize
taille
- Les fichiers journaux sont mis en rotation s'ils dépassent
taille octets, mais pas avant l'intervalle de temps par ailleurs
spécifié (daily, weekly, monthly ou
yearly). La directive apparentée size est similaire,
excepté qu'elle est mutuellement exclusive avec les directives
d'intervalle de temps et qu'elle fait tourner les fichiers journaux sans
tenir compte de la date de dernière rotation, sous réserve
qu'elle ait été spécifiée après le
critère de temps (la dernière directive
spécifiée l'emporte sur les précédentes).
Lorsque minsize est définie, la taille et l'âge d'un
fichier journal sont pris en compte.
- maxsize
taille
- Les fichiers journaux sont mis en rotation s'ils dépassent
taille octets, même avant l'intervalle de temps par ailleurs
spécifié (daily, weekly, monthly ou
yearly). La directive apparentée size est similaire,
excepté qu'elle est mutuellement exclusive avec les directives
d'intervalle de temps et qu'elle fait tourner les fichiers journaux sans
tenir compte de la date de dernière rotation, sous réserve
qu'elle ait été spécifiée après le
critère de temps (la dernière directive
spécifiée l'emporte sur les précédentes).
Lorsque maxsize est définie, la taille et l'âge d'un
fichier journal sont pris en compte.
- tabooext [+]
liste
- La liste actuelle des extensions taboues est modifiée (voir la
directive include pour des informations sur les extensions
taboues). Si un + précède la liste
d'extensions, la liste actuelle des extensions taboues est
augmentée, sinon elle est remplacée. Au démarrage, la
liste des extensions taboues contient ,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 à caractères
génériques tabous est modifiée (voir la directive
include pour des informations sur les extensions et les motifs
tabous). Si un + précède la liste de motifs,
la liste actuelle des motifs tabous est augmentée, sinon elle est
remplacée. Au démarrage, la liste des motifs tabous est
vide.
- create mode
propriétaire groupe, create
propriétaire groupe
- Le fichier journal est créé immédiatement
après la rotation (avant l'exécution du script
postrotate et avec le même nom que le fichier journal qui
vient d'être mis en rotation). mode spécifie les
droits du fichier journal en octal (tels que spécifiés
à l'aide de chmod(2)), owner spécifie
l'utilisateur qui sera propriétaire du fichier journal et
group spécifie le groupe auquel appartiendra le fichier
journal (voir la section UTILISATEUR ET GROUPE pour les
détails). Un ou plusieurs attributs du fichier journal peuvent
être omis, auquel cas ces attributs prendront comme valeur par
défaut la valeur qu'ils avaient dans le fichier journal original.
Cette directive peut être désactivée par la directive
nocreate.
- nocreate
- Les nouveaux fichiers journaux ne sont pas créés (outrepasse
la directive create).
- createolddir
mode [propriétaire [groupe]],
createolddir [propriétaire [groupe]]
- Si le répertoire spécifié à l'aide de la
directive olddir n'existe pas, il est créé.
mode spécifie les droits du répertoire olddir
en octal (tels que spécifiés à l'aide de
chmod(2)), owner spécifie l'utilisateur qui sera
propriétaire du répertoire olddir et group
spécifie le groupe auquel appartiendra le répertoire
olddir (voir la section UTILISATEUR ET GROUPE pour les
détails). Si mode n'est pas spécifié,
0755 est supposé. Cette directive peut être
désactivée en utilisant la directive nocreateolddir.
- nocreateolddir
- Le répertoire olddir n'est pas créé par
logrotate lorsqu'il n'existe pas.
- copy
- Faire une copie du fichier journal, mais ne pas modifier le fichier
original. Cette directive permet, par exemple, de générer un
instantané du fichier journal actuel, ou à un autre
utilitaire de tronquer ou analyser le fichier. Si cette directive est
utilisée, la directive create n'aura aucun effet, car
l'ancien fichier journal reste à sa place. La directive copy
permet, à l'aide de la directive olddir, de stocker sur
divers périphériques les fichiers journaux mis en rotation.
- nocopy
- Ne pas copier le fichier journal original et le laisser à sa place
(cette directive outrepasse la directive copy).
- copytruncate
- Au lieu de déplacer le fichier journal original et d'en
créer éventuellement un nouveau, le tronquer à une
taille de zéro à sa place après en avoir
effectué une copie. Cette directive peut être
utilisée lorsqu'on ne peut demander à un programme de fermer
son fichier journal, ce programme continuant alors à écrire
(en mode ajout) indéfiniment dans le fichier journal
précédent. Notez qu'il y a un très petit laps de
temps entre la copie du fichier et sa troncature, et qu'il y a donc un
risque de perte de données de journalisation. Si cette directive
est utilisée, la directive create n'aura aucun effet, car
l'ancien fichier journal reste en place. La directive copytruncate
permet de stocker les fichiers journaux mis en rotation sur divers
périphériques en utilisant la directive olddir. La
directive copytruncate implique la directive norenamecopy.
- nocopytruncate
- Ne pas tronquer le journal original en place après en avoir
créé une copie (outrepasse la directive
copytruncate).
- renamecopy
- Le fichier journal est renommé avec un nom temporaire dans le
même répertoire en lui ajoutant l'extension
« .tmp ». Ensuite, le script postrotate
est exécuté et le fichier journal est copié depuis le
fichier de nom temporaire vers le fichier de nom final. Enfin, le fichier
de nom temporaire est supprimé. La directive renamecopy
permet de stocker les fichiers journaux mis en rotation sur divers
périphériques en utilisant la directive olddir. La
directive renamecopy implique la directive nocopytruncate.
- norenamecopy
- Ne pas renommer ni copier le fichier journal original (outrepasse la
directive renamecopy).
- shred
- Supprimer les fichiers journaux en utilisant shred -u à la
place de unlink(), ce qui permet de s'assurer que les journaux ne
seront pas lisibles après leur suppression ; cette directive
est à off par défaut. Voir aussi noshred.
- noshred
- Ne pas utiliser shred pour supprimer les anciens fichiers journaux.
Voir aussi shred.
- shredcycles
nombre
- Demander à GNU shred(1) d'écraser les fichiers
journaux nombre fois avant suppression. Sans cette directive, c'est
la valeur par défaut de shred qui sera utilisée.
- allowhardlink
- Faire tourner les fichiers avec plusieurs liens physiques ; cette
directive est à off par défaut. Le fichier cible peut
être vidé à l'aide, par exemple, de shred ou
copytruncate. À utiliser avec précaution, en
particulier lorsque les fichiers journaux sont mis en rotation en tant que
root.
- noallowhardlink
- Ne pas faire tourner les fichiers avec plusieurs liens physiques. Voir
aussi allowhardlink.
- compress
- Les anciens fichiers journaux sont compactés avec gzip(1)
par défaut. Voir aussi nocompress.
- nocompress
- Les anciennes versions des fichiers journaux ne sont pas
compactées. Voir aussi compress.
- compresscmd
- Spécifier la commande à utiliser pour compacter les fichiers
journaux (par défaut gzip(1)). Voir aussi compress.
- uncompresscmd
- Spécifier la commande à utiliser pour décompacter les
fichiers journaux. Le programme de décompactage par défaut
est gunzip(1).
- compressext
- Spécifier l'extension à ajouter aux fichiers journaux
compactés si le compactage est activé. L'extension par
défaut correspond à celle spécifiée dans la
commande de compactage.
- compressoptions
- Des options de ligne de commande peuvent être transmises au
programme de compactage si on en utilise un. L'option par défaut
pour gzip(1) est « -6 » (ce qui
implique un haut niveau de compression au détriment de la vitesse
d'exécution). Si vous utilisez une commande de compression
différente, vous devrez peut-être modifier les
compressoptions en conséquence.
- delaycompress
- Reporter le compactage du fichier journal précédent au
prochain cycle de rotation. Cette directive n'a d'effet que si elle est
utilisée en combinaison avec la directive compress. Elle
peut être utilisée quand il n'est pas possible de demander
à un programme de fermer son journal, ce programme pouvant par
conséquent continuer à écrire pendant un moment dans
le fichier journal précédent.
- nodelaycompress
- Ne pas reporter le compactage du fichier journal précédent
au prochain cycle de rotation (outrepasse la directive
delaycompress).
- extension
ext
- Les fichiers journaux possédant l'extension ext peuvent la
conserver après leur rotation. Si le compactage est utilisé,
le suffixe de compactage (normalement .gz) apparaît
après ext. Par exemple, vous pourriez vouloir faire tourner
un fichier journal mylog.foo en mylog.1.foo.gz au lieu de
mylog.foo.1.gz.
- addextension
ext
- Donner aux fichiers journaux l'extension finale ext après
leur rotation. Si le fichier original a déjà pour extension
ext, l'extension n'est pas dupliquée mais simplement
déplacée vers la fin du nom du fichier ; autrement
dit, nom_fichier et nom_fichierext seront tous deux
mis en rotation vers nom_fichier.1ext. Si on utilise le
compactage, le suffixe de compactage (normalement .gz)
apparaîtra après ext.
- start
nombre
- C'est le nombre à utiliser comme base pour la rotation. Si vous
spécifiez 0 par exemple, les journaux seront
créés avec une extension .0 au moment de leur
rotation depuis les fichiers journaux originaux. Si vous spécifiez
9, les journaux seront créés avec une extension
.9 en sautant les valeurs 0 à 8, mais les
fichiers seront tout de même mis en rotation le nombre de fois
spécifié à l'aide de la directive rotate.
- dateext
- Archiver les anciennes versions des fichiers journaux en ajoutant une
extension de date comme AAAAMMJJ au lieu d'un simple nombre. Le format de
l'extension peut être configuré en utilisant les directives
dateformat et dateyesterday.
- nodateext
- Ne pas archiver les anciennes versions des fichiers journaux avec une
extension de date (outrepasse la directive dateext).
- dateformat
chaine_formatage
- Configurer l'extension pour dateext en utilisant une notation
similaire à celle de la fonction strftime(3). Seuls sont
permis les spécificateurs %Y %m %d %H %M %S %V %s et %z. Le format
par défaut est « -%Y%m%d », sauf pour
les rotations à chaque heure qui utilisent
« -%Y%m%d%H » comme format par défaut.
Notez que le caractère séparant le nom du journal de
l'extension fait aussi partie de la chaîne de formatage de date.
L'horloge système doit être réglée sur une
date postérieure au 9 septembre 2001 pour un fonctionnement correct
de %s. Notez que les horodatages générés par
ce format doivent être lexicalement adaptés au tri
(c'est-à-dire l'année en premier, puis le mois et enfin le
jour. Par exemple, 2001/12/01 est valable, mais 01/12/2001 ne l'est pas,
car 01/11/2002 serait considéré comme antérieur,
alors que ce n'est pas le cas). La raison de cette règle de format
réside dans le fait que lorsqu'on utilise la directive
rotate, logrotate trie tous les noms de fichiers
déjà mis en rotation pour déterminer lesquels sont
les plus anciens et doivent être supprimés.
- dateyesterday
- Utiliser la date de la veille au lieu de la date du jour pour créer
l'extension dateext, de façon que le fichier journal mis en
rotation ait une date dans son nom qui corresponde aux horodatages qu'il
contient.
- datehourago
- Utiliser l'heure précédente au lieu de l'heure courante pour
créer l'extension dateext, de façon que le fichier
journal mis en rotation ait une heure dans son nom qui corresponde aux
horodatages qu'il contient. À utiliser avec les rotations toutes
les heures.
- mail
adresse
- Quand un journal est mis en rotation pour être supprimé, il
est envoyé à adresse. La directive nomail
permet d'indiquer qu'aucun mail ne doit être
généré pour un journal particulier
- nomail
- Ne pas envoyer les anciens fichiers journaux.
- mailfirst
- Lors de l'utilisation de la commande mail, envoyer le journal qui
vient d'être mis en rotation au lieu d'envoyer le journal sur le
point d'expirer.
- maillast
- Lors de l'utilisation de la commande mail, envoyer le journal sur
le point d'expirer au lieu d'envoyer le journal qui vient d'être
mis en rotation (comportement par défaut).
- include
fichier_ou_répertoire
- Lire le fichier donné en argument comme s'il était
inséré là où la directive include
apparaît. Si c'est un répertoire qui est donné, la
plupart des fichiers de ce répertoire sont lus par ordre
alphabétique avant de continuer le traitement d'inclusion des
fichiers. Les seuls fichiers ignorés sont les fichiers non
standards (tels que les répertoires et les tubes nommés) et
les fichiers dont les noms se terminent par une extension ou un motif
tabous, comme précisé respectivement par la directive
tabooext ou taboopat. Le chemin donné peut
débuter par ~/ pour qu'il soit relatif au répertoire
personnel de l'utilisateur qui est à l'exécution. Pour des
raisons de sécurité, les fichiers de configuration ne
doivent pas être accessibles en écriture pour le groupe ou
le reste du monde.
- sharedscripts
- En général, les scripts prerotate et
postrotate sont exécutés pour chaque journal mis en
rotation et le chemin absolu du fichier journal leur est passé
comme premier argument. Cela signifie qu'un script peut être
exécuté plusieurs fois pour des spécifications de
fichier journal qui correspondent à plusieurs fichiers (comme
/var/log/news/* par exemple). Si la directive sharedscripts
est spécifiée, les scripts ne sont exécutés
qu'une seule fois, quel que soit le nombre de journaux auxquels correspond
le motif à caractères génériques, et
l'ensemble du motif leur est passé comme argument. Cependant, si
aucun des journaux du motif ne nécessite une rotation, les scripts
ne seront pas exécutés du tout. Si les scripts se terminent
avec une erreur (ou si la rotation d'un journal échoue), les
actions restantes ne seront exécutées pour aucun journal.
Cette directive outrepasse la directive nosharedscripts.
- nosharedscripts
- Exécuter les scripts prerotate et postrotate pour
chaque fichier journal qui est mis en rotation (il s'agit du comportement
par défaut, et cette directive outrepasse la directive
sharedscripts). Le chemin absolu du fichier journal est
passé au script comme premier argument. Le chemin absolu du fichier
journal final qui a été mis en rotation est passé au
script postrotate comme second argument. Si les scripts se
terminent avec une erreur, les actions restantes ne seront pas
exécutées, mais seulement pour les journaux affectés.
- firstaction
-
- script
-
- endscript Le
script est exécuté une fois avant que tous les
fichiers
- journaux qui correspondent au motif à caractères
génériques soient mis en rotation, avant l'exécution
du script prerotate et seulement si au moins un journal sera
effectivement mis en rotation. Ces directives ne doivent apparaître
qu'au sein d'une définition de fichier journal. L'ensemble du motif
est passé au script comme premier argument. Si le script se termine
avec une erreur, plus aucun traitement n'est effectué. Voir aussi
lastaction et la section SCRIPTS.
- lastaction
-
- script
-
- endscript
Le script est exécuté une fois après que tous
les fichiers
- journaux qui correspondent au motif à caractères
génériques soient mis en rotation, après
l'exécution du script prerotate et seulement si au moins un
journal est mis en rotation. Ces directives ne doivent apparaître
qu'au sein d'une définition de fichier journal. L'ensemble du motif
est passé au script comme premier argument. Si le script se termine
avec une erreur, un message d'erreur est seulement affiché (car il
s'agit de la dernière action). Voir aussi firstaction et la
section SCRIPTS.
- prerotate
-
- script
-
- endscript
Le script est exécuté avant la rotation du fichier
journal
- et de ses journaux anciens seulement si le journal sera effectivement mis
en rotation. Ces directives ne doivent apparaître qu'au sein d'une
définition de fichier journal. Normalement, le chemin absolu du
fichier journal est passé au script comme premier argument. Si
sharedscripts est spécifié, c'est l'ensemble du motif
qui est passé au script. Voir aussi postrotate et la section
SCRIPTS. Voir sharedscripts et nosharedscripts pour
la gestion des erreurs.
- postrotate
-
- script
-
- endscript
Le script est exécuté après la rotation du
fichier
- journal. et avant la compression du fichier journal. Ces directives ne
doivent apparaître qu'au sein d'une définition de fichier
journal. Normalement, le chemin absolu du fichier journal est passé
au script comme premier argument et le chemin absolu du fichier journal
final mis en rotation comme second argument. Si sharedscripts est
spécifié, l'ensemble du motif est passé au script
comme premier argument et le second argument est omis. Voir aussi
pretrotate et la section SCRIPTS. Voir sharedscripts
et nosharedscripts pour la gestion des erreurs.
- preremove
-
- script
-
- endscript
Le script est exécuté une fois juste avant la
suppression
- d'un fichier journal. logrotate passera au script le nom du fichier
sur le point d'être supprimé comme premier argument. Voir
aussi firstaction et la section SCRIPTS.
Les lignes entre le mot-clé de début (par exemple
prerotate) et endscript (ces deux mots-clés devant
apparaître seuls sur une ligne) sont exécutées en
utilisant /bin/sh. Le script hérite de certains traits du
processus logrotate comme stderr, stdout, le répertoire
actuel,l'environnement et le umask. Les scripts sont exécutés
sous l'utilisateur et groupe appelants, sans tenir compte de toute directive
su. Si l'option --log a été
spécifiée, le descripteur de fichier 3 correspondra au
fichier journal. Le répertoire de travail actuel n'est pas
spécifié.
Les identifiants d'utilisateur et de groupe sont résolus en
essayant tout d'abord d'utiliser leur représentation textuelle, et en
cas d'échec, en utilisant leur valeur numérique.
| /var/lib/logrotate/status |
Fichier d'état par défaut. |
| /etc/logrotate.conf |
Options de configuration. |
Erik Troan, Preston Brown, Jan Kaluza.
<https://github.com/logrotate/logrotate>
La traduction française de cette page de manuel a
été créée par Laurent Hugé et Lucien
Gentis <lucien.gentis@waika9.com>
Cette traduction est une documentation libre ; veuillez
vous reporter à la
GNU General
Public License version 3 concernant les conditions de copie et de
distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.
Si vous découvrez un bogue dans la traduction de cette page
de manuel, veuillez envoyer un message à
debian-l10n-french@lists.debian.org.