Le logrotate est un outil de ligne de commande de Linux pour gérer les entrées du journal. Cet outil permet à l'administrateur d'effectuer différents types de tâches sur les entrées de journal, telles que la limitation des fichiers journaux pivotés, la compression des fichiers journaux pivotés, la suppression des fichiers journaux inutiles, l'exécution du script shell particulier basé sur les fichiers journaux, etc. de la commande «logrorate» pour gérer les fichiers journaux de différentes manières sont présentés dans ce didacticiel à l'aide de plusieurs exemples.
Vérifiez la version de Logrotate installée
La commande « logrotate » est installée par défaut dans la nouvelle version du système d'exploitation Ubuntu. Exécutez la commande suivante pour vérifier la version installée de la commande « logrotate » :
$ logrotation --version
Les entrées de journal des différentes applications sont stockées par défaut dans le dossier « /var/log ». Le contenu similaire suivant apparaîtra si vous vérifiez le contenu du dossier.
$ ls / était / enregistrer
Définir la configuration « Logrotate »
Valeur de réglage | But |
quotidien/hebdomadaire/mensuel/annuel | Il définit la durée de rotation des journaux. |
faire pivoter le numéro | Il définit le nombre de fichiers qui seront conservés avant de supprimer les anciens fichiers journaux. |
compresse | Il est utilisé pour compresser les fichiers journaux. |
compressercmd | Il est utilisé pour définir la commande « compresser ». Le gzip est la commande par défaut. |
décompresser cmd | Il est utilisé pour définir la commande « décompresser ». Le gunzip est la commande par défaut. |
retarder la compression | Il est utilisé pour retarder le processus de compression des fichiers journaux. |
notification vide | Il est utilisé pour ne pas faire pivoter le fichier vide. |
il me manque | S'il est défini, aucune erreur n'est générée pour les fichiers journaux manquants. |
taille | Il est utilisé pour définir la limite de démarrage de la rotation des fichiers journaux. |
datetexte | Il est utilisé pour ajouter une valeur de date comme suffixe du fichier de rotation. |
copiertronquer | Il est utilisé pour créer une copie du fichier original. |
prérotation | Il est utilisé pour exécuter un script avant de faire tourner les fichiers journaux. |
post-rotation | Il est utilisé pour exécuter un script après la rotation des fichiers journaux. |
créer | Il est utilisé pour créer les fichiers journaux avec un privilège root. |
Syntaxe:
La syntaxe de la commande « logrotate » est donnée comme suit :
logrotation [ OPTION ] chemin_fichier_config
Différents types d'options peuvent être utilisés à différentes fins avec la commande « logrotate ».
Options de rotation
Certaines options utiles de la commande « logrotate » sont mentionnées ci-dessous :
-f, –force | Il est utilisé pour effectuer la rotation avec force lorsque cela est nécessaire. |
-d, –débogage | Il est utilisé pour activer le mode débogage pendant la rotation. |
-m, –mail |
Il sert à envoyer un email pendant la rotation. |
-s, –state |
Il est utilisé pour les fichiers d'état alternatifs. |
-usage | Il est utilisé pour imprimer les informations d'utilisation. |
-?, -aide | Il est utilisé pour imprimer les messages d'aide. |
-v, –verbeux | Il est utilisé pour imprimer en mode verbeux. |
Logroter le fichier de configuration
Le fichier de configuration principal de logrotate se trouve à l'emplacement « /etc/logrotate.conf ». Exécutez la commande suivante pour ouvrir le fichier dans l'éditeur nano :
$ nano / etc. / logrotate.confLe paramètre par défaut de la commande « logrotate » est affiché dans le fichier « logrotate.conf ». La directive « include » est utilisée dans le fichier pour récupérer la configuration qui se trouve dans le répertoire « /etc/logrotate.d ».
Exemple 1 : Créer un fichier de configuration de rotation simple
Créez un exemple de fichier journal nommé « /var/log/test.log » avec les exemples de données de journal. Exécutez la commande suivante pour ouvrir l'éditeur nano afin de créer un nouveau fichier « logrotate.conf » dans l'emplacement du dossier « /etc/tmp ». Créez le dossier «/tmp» avec les privilèges root s'il n'a pas été créé auparavant.
$ nano / etc. / tmp / logrotate.confAjoutez le contenu suivant au fichier « /var/log/test.log ». Selon le paramètre, le fichier « test.log » sera alterné quotidiennement si la taille du fichier dépasse 5 Ko :
/ était / enregistrer / test.log {tous les jours
taille 5K
son Administrateur racine
}
Exécutez la commande suivante pour vérifier la taille du fichier journal :
$ ls -l / était / enregistrer / test.logExécutez la commande « logrotate » après avoir créé le fichier de configuration.
$ sudo logrotation / etc. / tmp / logrotate.confExécutez à nouveau la commande suivante pour vérifier la taille du fichier journal après avoir exécuté la commande « logrotate » :
$ ls -l / était / enregistrer / test.logLa taille du fichier « test.log » est de 1K+. Ainsi, aucune rotation n’est effectuée en fonction du paramètre de configuration.
Modifiez la valeur de taille en 1 Ko dans le fichier « /etc/tmp/logrotate.conf » et exécutez à nouveau la commande « ls » pour vérifier la taille du fichier « /var/log/test.log ». Selon le résultat, le fichier journal est pivoté et supprimé car la limite de taille est dépassée.
Exemple 2 : Utilisation de Logrotate Copytruncate
Créez ou modifiez le fichier « /etc/tmp/logrotate.conf » avec les paramètres suivants pour montrer l'utilisation du copytruncate. Selon les nouveaux paramètres, logrotate crée une copie du fichier d'origine en rendant la taille du fichier d'origine à zéro.
/ était / enregistrer / test.log {tourner 5
taille 1 000 $
copiertronquer
son Administrateur racine
}
Exécutez la commande suivante pour vérifier la taille du fichier « test.log » :
$ ls -l / était / enregistrer / test.logExécutez la commande « logrotate » après avoir créé le fichier de configuration.
$ sudo logrotation / etc. / tmp / logrotate.confExécutez à nouveau la commande suivante pour vérifier la taille du fichier « test.log » après avoir exécuté la commande « logrotate » :
$ ls -l / était / enregistrer / test.logLa taille du fichier d'origine devient 0 après l'exécution de la commande « logrotate » pour le paramètre copytruncate.
Exemple 3 : Utilisation de Logrotate Compress
Créez ou modifiez le fichier « /etc/tmp/logrotate.conf » avec les paramètres suivants pour montrer l'utilisation de la compression. Selon les nouveaux paramètres, logrotate crée un fichier compressé du fichier d'origine.
/ était / enregistrer / test.log {tourner 5
taille 1 000 $
compresse
créer 770 Administrateur racine
}
Exécutez la commande suivante pour vérifier la liste des fichiers et dossiers de « /var/log » :
$ ls / était / enregistrer /Exécutez la commande « logrotate » après avoir créé le fichier de configuration.
$ sudo logrotation / etc. / tmp / logrotate.confExécutez à nouveau la commande suivante pour vérifier la liste des fichiers et dossiers de « /var/log » :
$ ls / était / enregistrer /Le fichier compressé du fichier « test.log » est créé sous le nom « test.log.1.gz » et le fichier d'origine est supprimé.
Exemple 4 : Utilisation de Logrotate Dateext
Créez ou modifiez le fichier « /etc/tmp/logrotate.conf » avec les paramètres suivants pour afficher l'utilisation de dateext. Selon les nouveaux paramètres, logrotate crée un fichier compressé du fichier original avec la valeur de date.
était / enregistrer / test.log {son Administrateur racine
tourner 5
taille 1 000 $
compresse
créer 770 Administrateur racine
datetexte
}
Exécutez la commande « logrotate » après avoir créé le fichier de configuration.
$ sudo logrotation / etc. / tmp / logrotate.confExécutez la commande suivante pour vérifier la liste des fichiers et dossiers de « /var/log » :
$ ls -l / était / enregistrer /Le fichier compressé du fichier « test.log » est créé sous le nom « test.log.20240129.gz » et le fichier d'origine est supprimé.
Exemple 5 : Utilisation de Logrotate Maxage
Créez ou modifiez le fichier « /etc/tmp/logrotate.conf » avec les paramètres suivants pour montrer l'utilisation du maxage. Selon les paramètres, logrotate conserve cinq entrées de journal si la taille du fichier journal dépasse 1 Ko après un jour.
/ était / enregistrer / test.log {son Administrateur racine
tourner 5
taille 1 000 $
compresse
maximum 1
}
Exécutez la commande « logrotate » suivante pour stocker la sortie dans un autre fichier journal nommé « out.log » :
$ sudo logrotation -s = / était / enregistrer / out.log / etc. / tmp / logrotate.confSelon le résultat suivant, le fichier « out.log » est créé après l'exécution de la commande « logrotate » :
Exemple 6 : Utilisation de Logrotate Missingok
Créez ou modifiez le fichier « /etc/tmp/logrotate.conf » avec les paramètres suivants. Ici, le fichier journal « testfile.log » n'existe pas dans le dossier « /var/log ».
/ était / enregistrer / fichier de test.log {son Administrateur racine
tourner 5
taille 1 000 $
compresse
}
Un message d'erreur est imprimé après l'exécution de la commande « logrotate ».
Ajoutez le paramètre « missingok » dans le fichier de configuration logrotate et exécutez à nouveau la commande « logrotate ». Aucune erreur n'est imprimée pour le fichier journal manquant.
Exemple 7 : Utilisation de Logrotate Prerotate
Créez un fichier Bash nommé « test.sh » avec le script suivant qui imprime un message simple. Le fichier est utilisé dans cet exemple de logrotate pour montrer l'utilisation de la prérotation dans le fichier de configuration de logrotate.
test.sh#!/bin/bash
écho 'logroter des exemples...'
Après avoir créé le fichier, exécutez la commande suivante pour définir l'autorisation d'exécution de ce fichier pour tous les utilisateurs :
$ chmod a+x / maison / compréhension / test.shMaintenant, créez ou modifiez le fichier « /etc/tmp/logrotate.conf » avec les paramètres suivants. Selon les paramètres, logrotate conserve cinq entrées de journal si la taille du fichier journal dépasse 1 Ko et que le fichier « test.sh » est exécuté avant la rotation.
/ était / enregistrer / test.log {son Administrateur racine
tourner 5
taille 1 000 $
prérotation
/ maison / compréhension / test.sh
fin du texte
}
La sortie du fichier « test.sh » est affichée après l'exécution de la commande « logrotate » :
Conclusion
Les différentes utilisations de la commande « logrotate » sont présentées dans ce didacticiel à l'aide de plusieurs exemples qui aideront l'utilisateur Linux à connaître les utilisations de la commande et à gérer correctement les fichiers journaux.