Comment configurer logrotate pour ne pas supprimer mes fichiers journaux après la rotation?

24

Il y a un moyen de faire ça?

Guilherme
la source
Peux-tu nous dire pourquoi tu veux faire ça? Peut-être qu'il y a d'autres options ...
chmeee
Dans mon cas, ce serait bien de télécharger de gros journaux anciens sur un stockage externe et d'en conserver de nouveaux sur le serveur. J'ai donc besoin d'un simple séparateur de journaux.
sekrett
2
Mon cas d'utilisation pour cette configuration est: je veux garder mon journal pour toujours, car j'en aurai peut-être besoin à des fins d'audit, MAIS je veux que mes fichiers soient tournés afin que le journal actuel ne grossisse pas trop et que les fichiers tournés puissent être compressé - sinon, la sauvegarde des journaux sur un serveur externe est trop difficile et l'inspection des fichiers devient également trop lente.
Rudolf Mayer

Réponses:

32

Dans votre logrotate.conf (ou le fichier logrotate.d équivalent), changez la ligne qui dit "

rotate 10

(votre numéro peut être différent) à un plus grand nombre. Cela lui dira de conserver autant de jours de journaux. Vous pouvez le faire 36500, ce qui vous durerait 100 ans.

jedberg
la source
6
Quand je l'ai fait sur un raspberry pi (raspian), il a gelé tous les soirs. Une fois, j'ai arrêté d'exécuter des processus et d'ouvrir des fichiers à l'aide de la console série et j'ai découvert qu'elle essayait de renommer 100000 fichiers inexistants. Alors méfiez-vous. Malheureusement, je n'ai pas d'informations plus détaillées
Christian
0

Je cherchais cela pour faire la rotation de mes sauvegardes de base de données quotidiennement, hebdomadairement et mensuellement; donc je fais tourner le fichier tous les jours mais garde le fichier pour faire la rotation hebdomadaire, et même pour la rotation annuelle.

Utilisez l'option de copie. Du manuel:

copy

copier Faites une copie du fichier journal, mais ne changez pas du tout l'original. Cette option peut être utilisée, par exemple, pour créer un instantané du fichier journal actuel, ou lorsqu'un autre utilitaire doit tronquer ou analyser le fichier. Lorsque cette option est utilisée, l'option de création n'aura aucun effet, car l'ancien fichier journal reste en place.

Feida Kila
la source
C'est le même que le commentaire ci-dessous ( serverfault.com/a/50186/275485 ), et ne fournit pas une réponse correcte; copie ne signifie pas que vos anciens fichiers qui ont été tournés ne sont pas supprimés ..
Rudolf Mayer
-3

Mettre de côté le fait que la rotation implique la suppression ... ;-)

Il semble que vous pouvez simplement ajouter le mot «copier» au fichier approprié (probablement dans /etc/logrotate.d). Par exemple, un script logrotate apache2 ressemblerait à ceci:

/var/log/apache2/*.log {
    hebdomadaire
    missingok
    faire pivoter 52
    compresse
    délai de compression
    notifempty
    copie
    sharedscripts
    post-rotation
        if [-f "`. / etc / apache2 / envvars; echo $ {APACHE_PID_FILE: - / var / run / apache2.pid} `"]; puis
            /etc/init.d/apache2 reload> / dev / null
        Fi
    script de fin
}

Essayez cela et voyez s'il fait ce que vous voulez.

Justin Ellison
la source
2
En supposant qu'il souhaite que les fichiers soient "tournés" mais qu'il ne supprime jamais les anciens fichiers, cela ne le fera pas. L'ajout de «copie» à la strophe de configuration signifie que le fichier d'origine continuera de croître pour toujours, mais les anciennes copies du fichier seront finalement supprimées. Si je comprends bien, "copier" est principalement utile lorsque vous vous attendez à ce qu'un autre processus tronque / supprime l'original.
Insyte
Exactement, c'est ce que je pensais qu'il demandait. Il a spécifiquement demandé un moyen de "ne pas supprimer mes fichiers journaux", pas un moyen de "ne pas supprimer les anciennes archives de mes fichiers journaux". Je suppose que je devrais me méfier davantage des questions qui impliquent juste un sujet et aucun corps ;-)
Justin Ellison
2
L'expression "après rotation" fournit un indice.
pause jusqu'à nouvel ordre.
4
"Mettre de côté le fait que la rotation implique la suppression ..." Pas nécessairement. La rotation peut impliquer simplement de compresser les anciens journaux et de les conserver, c'est ce que semble demander la question.
reflexiv