LOGROTATE(8)

NOM

logrotate — faire tourner, compresser et envoyer les journaux système

SYNOPSIS

logrotate [--force] [--debug] [--state fichier] [--skip-state-lock] [--wait-for-state-lock] [--verbose] [--log fichier] [--mail commande] fich_conf [fich_conf2 ...]

DESCRIPTION

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.

OPTIONS

-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 un court message pour l’utilisation.

-?, --help
    Afficher l'aide.

--version
    Afficher les informations de version.

FICHIER DE CONFIGURATION

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 :

DIRECTIVES DU FICHIER DE CONFIGURATION
Un fichier de configuration de logrotate peut contenir les directives suivantes :

  Rotation

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.

  Fréquence

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).

  Sélection de fichiers

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.

  Fichiers et répertoires

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.

  Compression

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).

  Noms de fichier

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.

  Messagerie

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).

  Fichiers de configuration supplémentaires

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.

  Scripts

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.

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é.

UTILISATEUR ET GROUPE

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.

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>

TRADUCTION
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 (https://www.gnu.org/licenses/gpl-3.0.html) 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.