Générateur de Configuration Linux Logrotate (Rétention et Compression)
SysAdmin & DevOps

Générateur de Configuration Linux Logrotate (Rétention et Compression)

Générez des fichiers de configuration /etc/logrotate.d/ prêts pour la production avec rotation quotidienne/hebdomadaire, compression gzip, dateext, limites de taille et scripts postrotate.

Confidentialité 100% côté client
Zéro transmission au serveur
Modèles :
Directives et Paramètres Logrotate
Fichier cible & Emplacement/etc/logrotate.d/nginx
Fréquence de rotation & Limites de rétentionConserve 14 fichiers rotatifs
Compression & Timestamping (dateext)~85% de réduction d'espace
Permissions de fichiers & Sécurité des processuscopytruncate vs create
Reload Signals & Scripts (postrotate)
S'exécute après la rotation
S'exécute avant la rotation
/var/log/nginx/*.log {
    daily
    rotate 14
    maxage 30
    missingok
    notifempty
    compress
    delaycompress
    dateext
    dateformat -%Y%m%d
    dateyesterday
    create 0640 www-data adm
    sharedscripts
    postrotate
        [ -f /var/run/nginx.pid ] && kill -USR1 $(cat /var/run/nginx.pid)
    endscript
}
Rotation et Fréquence
DAILY (14 copies)

Conserve jusqu'aux générations spécifiées avant l'éviction automatisée.

Compression et Stockage
Gzip (delaycompress)

Estimated ~85% disk storage savings with background gzip.

Permissions et Cycle de Vie
create 0640 www-data

Atomic file rotation with new file recreation and custom permissions.

Génération 100% Côté Client

Aucun envoi serveur. Vos chemins de journaux, scripts personnalisés et identifiants restent strictement dans votre navigateur.

Spécification Logrotate Complète

Prise en charge intégrale de copytruncate, delaycompress, horodatage dateext, limites de taille, sharedscripts et directive su.

Prêt pour la Production

Génération instantanée de fichiers pour /etc/logrotate.d/, commandes de test à blanc 'logrotate -d' et scripts d'installation shell.

Référence technique et guide d'architecture

Générateur de Configuration Linux Logrotate (Rétention & Compression) — Guide de référence

Générez des fichiers de configuration /etc/logrotate.d/ prêts pour la production avec rotation quotidienne/hebdomadaire, compression gzip, dateext, limites de taille et scripts postrotate.

Paramètres clés et contrôles

rotateDirective

Définit le nombre d'archives de journaux conservées avant la suppression définitive des plus anciens.

Par défaut : 4
frequencyDirective

Spécifie la fréquence temporelle de rotation : daily (quotidien), weekly (hebdomadaire), monthly (mensuel) ou yearly (annuel).

Par défaut : weekly
compressDirective

Active la compression gzip des journaux archivés afin d'économiser l'espace disque.

Par défaut : compress
delaycompressDirective

Reporte la compression du journal le plus récemment archivé au cycle suivant afin d'éviter les verrous d'écriture.

Par défaut : delaycompress
createDirective

Définit les permissions (mode octal), le propriétaire et le groupe lors de la recréation du fichier actif immédiatement après rotation.

Par défaut : 0640 root adm
copytruncateDirective

Copie le journal actif puis tronque l'original à zéro octet sur place (adapté aux démons ne fermant pas leurs descripteurs).

Par défaut : désactivé
postrotateBloc

Commandes shell exécutées après la rotation des fichiers, fréquemment utilisées pour recharger les démons (ex. systemctl reload).

Par défaut : optionnel

Conseils de pro et bonnes practices

Des services tels que Nginx ou

Des services tels que Nginx ou PostgreSQL continuent d'écrire dans les descripteurs ouverts jusqu'à la réception d'un signal de rechargement. delaycompress évite de compresser un fichier en cours d'écriture.

Lorsque vous ciblez plusieurs journaux

Lorsque vous ciblez plusieurs journaux via un motif tel que /var/log/nginx/*.log, l'absence de sharedscripts déclenche l'exécution du script postrotate pour chaque fichier individuel, provoquant des vagues de rechargements inutiles.

Validez toute nouvelle configuration

Validez toute nouvelle configuration avec 'logrotate -d /etc/logrotate.d/myapp' avant déploiement. L'option -d analyse la syntaxe et affiche les actions prévues sans altérer le système de fichiers.

Il subsiste une infime fraction de

Il subsiste une infime fraction de seconde entre la copie et la troncature où des entrées de journal peuvent être perdues. Privilégiez les signaux de rechargement (USR1/SIGHUP) dès que le démon les prend en charge.

Pièges courants et dépannage

Erreur 'error: skipping ... parent directory has insecure permissions'

Logrotate refuse de s'exécuter si les fichiers de configuration ou répertoires parents possèdent des droits d'écriture pour le groupe ou les autres utilisateurs. Appliquez 'chmod 0644 /etc/logrotate.d/myapp' et restreignez le dossier parent avec 0755 ou 0750.

L'application continue d'écrire dans l'archive .1 plutôt que dans le nouveau fichier actif

Sous Linux, les écritures sont liées aux numéros d'inodes ouverts et non aux chemins textuels. Ajoutez un bloc postrotate exécutant 'systemctl reload <service>' pour réinitialiser les descripteurs, ou activez copytruncate.

Les rotations se déclenchent trop fréquemment ou de manière inattendue

Vérifiez si des directives 'size' ou 'maxsize' ont été combinées aux fréquences temporelles, et inspectez le fichier d'état /var/lib/logrotate/status pour examiner les dates des dernières rotations.

Foire aux questions (FAQ)

Où doivent être placés les fichiers de configuration logrotate personnalisés sous Linux ?▼

Les configurations propres à chaque service doivent être créées dans /etc/logrotate.d/ (par exemple /etc/logrotate.d/myapp). Le fichier maître /etc/logrotate.conf importe automatiquement l'ensemble des fichiers de ce répertoire.

Quelle est la différence technique entre create et copytruncate?▼

'create' renomme le journal existant et crée un nouveau fichier vide au même emplacement, exigeant que l'application rouvre son descripteur via un signal. 'copytruncate' copie le fichier puis réduit sa taille à zéro sur place sans redémarrage, au prix d'un infime risque de perte lors de la troncature.

Quel est l'intérêt de la directive dateext par rapport à l'indexation numérique ?▼

L'option 'dateext' ajoute une estampille temporelle (par défaut YYYYMMDD) au lieu d'un numéro incrémental (.1, .2.gz). Les anciens fichiers ne sont plus renommés à chaque rotation, facilitant l'ingestion continue avec Fluentd, Datadog ou Filebeat.

Comment forcer l'exécution immédiate de logrotate pour des tests ou libérer de l'espace ?▼

Lancez la commande 'logrotate -vf /etc/logrotate.d/myapp'. L'argument -v fournit un compte-rendu exhaustif tandis que -f (force) exécute la rotation sans tenir compte des contraintes de calendrier ou de taille.

Pourquoi la directive su est-elle devenue obligatoire sur les distributions Linux modernes ?▼

Lorsqu'un dossier de journaux appartient à un utilisateur non-root (comme www-data ou mysql), logrotate exige la directive 'su <utilisateur> <groupe>' pour abandonner ses privilèges root avant de manipuler les fichiers, neutralisant ainsi les failles d'élévation par liens symboliques.

Outils et utilitaires connexes

Tous les outils →
Guide Développeur du Générateur de Configuration YAML Ubuntu NetplanDéveloppement

Générez des configurations YAML Netplan pour Ubuntu 20.04/22.04/24.04 : adresses IP statiques, DHCP, résolveurs DNS, passerelles, ponts et agrégations de liens.

Ouvrir l'outil→
Guide Développeur : Générateur de Modèles Python SQLAlchemy 2.0 depuis SQL DDLDéveloppement

Convertissez vos instructions SQL CREATE TABLE en modèles Python SQLAlchemy 2.0 DeclarativeBase fortement typés avec les annotations Mapped et mapped_column.

Ouvrir l'outil→
Guide Développeur : Générateur de Modèles Struct Golang GORM depuis SQL DDLDéveloppement

Convertissez vos schémas SQL CREATE TABLE en définitions de structures (struct) Golang avec balises GORM, balises JSON et typage Go précis.

Ouvrir l'outil→
Guide Développeur : Générateur de Modèles Sequelize TypeScript depuis SQL DDLDéveloppement

Guide technique complet pour convertir les instructions SQL CREATE TABLE DDL en modèles typés Sequelize TypeScript, définitions DataTypes, attributs CreationOptional et déclarations Model.init.

Ouvrir l'outil→
Json To Elixir Ecto Référence DéveloppeurDéveloppement

Guide architectural et référence de configuration pour compiler des données JSON brutes en schémas Elixir Ecto de production, migrations, changesets et typespecs Dialyzer.

Ouvrir l'outil→
Guide Développeur : Générateur de Case Classes JSON vers Scala 3 & Scala 2Développement

Convertissez vos charges utiles JSON en case classes Scala sécurisées avec dérivation automatique de codecs Circe, Play JSON ou zio-json.

Ouvrir l'outil→