Logrotate-3.19.0

Introduction à Logrotate

Le paquet logrotate permet la rotation automatique, la compression, la suppression et l'envoi par mail des fichiers de log.

This package is known to build and work properly using an LFS-11.1 platform.

Informations sur le paquet

Dépendances de Logrotate

Requises

popt-1.18

Facultatives

Un MTA (à l'exécution)

Notes utilisateur : https://wiki.linuxfromscratch.org/blfs/wiki/logrotate

Installation de Logrotate

Installez logrotate en exécutant les commandes suivantes :

./configure --prefix=/usr &&
make

Pour tester les résultats, lancez : make test. Un test échoue parce que la vieille commande compress n'est pas présente et deux tests échouent si un MTA n'est pas installé.

Maintenant, en tant qu'utilisateur root :

make install

Configuration de Logrotate

Logrotate nécessite un fichier de configuration, qui peut être passé en argument à la commande quand elle est lancée. Créez le fichier en tant qu'utilisateur root :

cat > /etc/logrotate.conf << EOF
# Begin /etc/logrotate.conf

# Rotate log files weekly
weekly

# Don't mail logs to anybody
nomail

# If the log file is empty, it will not be rotated
notifempty

# Number of backups that will be kept
# This will keep the 2 newest backups only
rotate 2

# Create new empty files after rotating old ones
# This will create empty log files, with owner
# set to root, group set to sys, and permissions 664
create 0664 root sys

# Compress the backups with gzip
compress

# No packages own lastlog or wtmp -- rotate them here
/var/log/wtmp {
    monthly
    create 0664 root utmp
    rotate 1
}

/var/log/lastlog {
    monthly
    rotate 1
}

# Some packages drop log rotation info in this directory
# so we include any file in it.
include /etc/logrotate.d

# End /etc/logrotate.conf
EOF

chmod -v 0644 /etc/logrotate.conf

Maintenant créez le répertoire /etc/logrotate.d en tant qu'utilisateur root :

mkdir -p /etc/logrotate.d

Maintenant des commandes de rotation de log supplémentaires peuvent être entrées, typiquement dans le répertoire /etc/logrotate.d. Par exemple :

cat > /etc/logrotate.d/sys.log << EOF
/var/log/sys.log {
   # If the log file is larger than 100kb, rotate it
   size   100k
   rotate 5
   weekly
   postrotate
      /bin/killall -HUP syslogd
   endscript
}
EOF

chmod -v 0644 /etc/logrotate.d/sys.log

Vous pouvez indiquer des fichiers multiples dans une seule entrée :

cat > /etc/logrotate.d/example.log << EOF
file1
file2
file3 {
   ...
   postrotate
    ...
   endscript
}
EOF

chmod -v 0644 /etc/logrotate.d/example.log

Vous pouvez utiliser dans la même ligne la liste de fichiers: file1 file2 file3. Regardez la page de man de logrotate ou http://www.techrepublic.com/article/manage-linux-log-files-with-logrotate/ pour plus d'exemples.

La commande logrotate /etc/logrotate.conf peut être lancée manuellement, cependant, la commande devrait être lancée quotidiennement. D'autres commandes utiles sont logrotate -d /etc/logrotate.conf pour le débogage et logrotate -f /etc/logrotate.conf pour forcer les commandes à être lancée immédiatement. En combinant les options -df, vous pouvez déboguer les effets des commandes forcées. Pendant le débogage, la commande est seulement simulée, pas vraiment lancée, donc, éventuellement des erreurs qui n'existent pas apparaissent, quand des fichiers intermédiaires sont attendus, car ils ne sont pas réellement créés.

Pour lancer logrotate quotidiennement, exécutez les commandes suivantes en tant qu'utilisateur root pour créer un timer systemd qui sera lancé tous les jours à 3 heures du matin (heure locale) :

cat > /usr/lib/systemd/system/logrotate.service << "EOF" &&
[Unit]
Description=Runs the logrotate command
Documentation=man:logrotate(8)
DefaultDependencies=no
After=local-fs.target
Before=shutdown.target

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/sbin/logrotate /etc/logrotate.conf
EOF
cat > /usr/lib/systemd/system/logrotate.timer << "EOF" &&
[Unit]
Description=Runs the logrotate command daily at 3:00 AM

[Timer]
OnCalendar=*-*-* 3:00:00
Persistent=true

[Install]
WantedBy=timers.target
EOF
systemctl enable logrotate.timer

Contenu

Programmes installés: logrotate
Bibliothèque installée: Aucune
Répertoires installés: Aucun

Descriptions courtes

logrotate

fournit des fonctions de maintenance de log défini dans les fichiers de configuration

Last updated on