Je ne pouvais trouver dans Google aucun moyen sûr d'effacer le journal systemd. Est-ce que quelqu'un connaît un moyen sûr et fiable de le faire?
Disons que j'essayais quelque chose et que mes journaux étaient encombrés de divers messages d'erreur. De plus, j'affiche mon journal sur mon bureau en utilisant Conky. Je ne veux vraiment pas voir ces erreurs car elles me rappellent un jour terrible où je réparais ce genre de choses. Je veux me sentir comme un homme frais après cette horreur. Je pense que tout le monde conviendra que c’est une raison valable pour effacer les journaux: P.
la source
journalctl --vacuum-size=1K
puisjournalctl
montre encore beaucoup plus que 1K. Il montre tous les messages depuis le dernier démarrage.journalctl --flush --rotate
avantjournalctl --vacuum-time=1s
et il a enlevé plus de choses, bien que toujours pas tout.En général, vous ne nettoyez pas le journal vous-même. Cela est géré par systemd lui-même et les anciens journaux sont remplacés par une rotation au fur et à mesure que de nouvelles données arrivent. La bonne chose à faire serait de planifier journald pour ne conserver que le nombre de données qui vous intéresse. La chose la plus courante à ajuster est le disque total. l'espace qu'il est autorisé à prendre. Une fois cette limite franchie, il lancera les anciennes entrées pour rester proche de cette valeur.
Vous pouvez définir ceci
/etc/systemd/journald.conf
comme suit:la source
MaxRetentionSec
place deSystemMaxUse
. Voirman journald.conf
pour plus de détails.La réponse de Michael manque à une chose: passer l'aspirateur ne supprime que les fichiers journaux archivés, pas les fichiers actifs. Pour vous débarrasser de tout, vous devez d'abord faire pivoter les fichiers afin que les entrées récentes soient déplacées vers des fichiers inactifs.
Ainsi, la réponse complète pour supprimer toutes les entrées semble être
(Notez que vous ne pouvez pas combiner cela en une seule
journalctl
commande.)En passant, certaines distributions ont journald configuré pour enregistrer les journaux sur disk (
/var/log/journal
), tandis que d'autres les conservent en mémoire (/run/log/journal
). Je suppose que dans certains cas, il peut être nécessaire d’utiliser d’journalctl --flush
abord pour tout supprimer.Si vous n'avez pas
--rotate
dans votre version, vous pouvez utiliser l'--since
argument pour filtrer les entrées:la source
Sur Arch Linux, le plus proche que j'ai eu était:
sudo systemctl restart systemd-journald
Sur mon système, chaque fichier de journal fait 8 Mo, et les fichiers ci-dessus sont tous effacés sauf 3, ce qui porte la taille totale à environ 25 Mo.
Mon cas d' utilisation a été invalidante pour BTRFS CoW (juste pour le répertoire de journal et sous - répertoires):
sudo chattr +C /var/log/journal/*
. Le problème est que l'attribut n'est défini que sur les fichiers nouvellement créés, d'où le désir de vider le journal.la source
SystemMaxUse=1K
, redémarrésystemd-journald
, mais journalctl affiche toujours les entrées que je veux supprimer. Comment se passe cette progression à partir de fichiers texte plats?Depuis
--vacuum-time
et--vacuum-size
je n'ai rien fait pour moi, j'ai fait ce qui suit:Ce n'est pas juste, mais ça a fonctionné.
la source
/run/log
.Une méthode très brutale pour nettoyer tout le journal:
Vous pouvez également utiliser
--vacuum-size
comme Michael mentoined.la source
systemctl restart systemd-journald
.Les deux options --rotate et --vacuum-time = 1 ne fonctionnaient pas pour moi sur CentOS. J'ai pu effacer ça comme ça:
la source
./journal
. Lesjournalctl
commandes ne fonctionnent que dans la plus récente. J'ai donc dû supprimer l'ancien répertoire manuellement et c'est sûr. Après je limite juste la taille dans le journal conf.Sauvegardez-le au cas où vous en auriez besoin à l'avenir:
cp /run/log/journal/<temp-string>/system.journal /mylog/dir/back/system.journal.bak
Effacer le fichier:
cd /run/log/journal/<temp-string>/
>system.journal
Vérifiez pour voir les derniers journaux:
journalctl -xe
la source
journalctl -b
montrera que du démarrage le plus récent. Vous pouvez également utiliser-b -1
,-b -2
etc. Votre terrible journée est toujours là, mais vous n’aurez pas à la voir, à moins que vous n’ayiez à le faire.la source
Ma réponse précédente vient d'être supprimée pour avoir été "dupliquée". Désolé de ne pas avoir été assez clair dans ma réponse précédente, mais c'était différent des réponses existantes. Alors, voici une version plus élaborée:
journalctl -m --vacuum-time=1s
a fait le tour pour moi. S'il vous plaît faites remarquer le-m
drapeau , il fusionne tous vos journaux et ensuite les nettoyer. Sans le-m
drapeau, rien n'a été nettoyé dans mon cas (sur CentOS-7).J'espère que ça aide.
la source