web-dev-qa-db-fra.com

Comment effacer journalctl

Je n'ai trouvé dans google aucun moyen sûr d'effacer le journal systemd. Quelqu'un connaît-il un moyen sûr et fiable de le faire?

Supposons que j'expérimente quelque chose et que mes journaux soient 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 une horrible journée où je réparais ce truc, 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.

262
Łukasz Zaroda

La méthode d'auto-maintenance consiste à aspirer les bûches par taille ou par durée.

Conserver uniquement les deux derniers jours:

journalctl --vacuum-time=2d

Ne conserver que les 500 derniers Mo:

journalctl --vacuum-size=500M

man journalctl pour plus d'informations.

345
Michael

Vous n'effacez pas le journal vous-même. Cela est géré par systemd lui-même et les anciens journaux sont supprimés à mesure que de nouvelles données entrent. La bonne chose à faire serait de planifier journald pour ne conserver que les données que vous souhaitez. La chose la plus courante à régler est le disque total l'espace qu'il est autorisé à occuper. Une fois qu'il franchit cette limite, il commencera à lancer les anciennes entrées pour rester près de cette valeur.

Vous pouvez définir cela dans /etc/systemd/journald.conf comme ceci:

SystemMaxUse=100M
100
Caleb

Réponse de Michael il 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

journalctl --rotate
journalctl --vacuum-time=1s

(Notez que vous ne pouvez pas combiner cela en une seule commande journalctl.)

Soit dit en passant, certaines distributions ont configuré journald de sorte qu'il écrit des journaux sur le disque (/var/log/journal) tandis que d'autres gardent les journaux en mémoire (/run/log/journal). Je pense que dans certains cas, il peut être nécessaire d'utiliser journalctl --flush d'abord pour tout supprimer.

Si vous n'avez pas --rotate dans votre version, vous pouvez utiliser le --since argument pour filtrer les entrées:

--since "2019-01-30 14:00:00"
--since today
73
Jan Warchoł

Sur Arch Linux, le plus proche que j'ai obtenu était:

  • Modifiez /etc/systemd/journald.conf pour définir SystemMaxUse = 1M
  • Journal de redémarrage: Sudo systemctl restart systemd-journald
  • Réinitialisation de SystemMaxUse = 200M
  • Redémarrage du journal

Sur mon système, chaque fichier journal fait 8 Mo, et ce qui précède est effacé tous sauf 3, ce qui porte la taille totale à environ 25 Mo.

Mon cas d'utilisation désactivait CoW pour BTRFS (uniquement pour le répertoire du journal et les 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.

20
helmingstay

Depuis --vacuum-time et --vacuum-size n'a rien fait pour moi, j'ai fait ce qui suit:

$ Sudo find /var/log/journal -name "*.journal" | xargs Sudo rm 
$ Sudo systemctl restart systemd-journald

Ce n'est pas bien, mais cela a fonctionné.

14
Matt

Une méthode très brute pour nettoyer tout le journal:

$ Sudo journalctl --vacuum-time=1seconds

Vous pouvez aussi utiliser --vacuum-size comme Michael l'a mentionné.

11
Lanti

--Rotate et --vacuum-time = 1s ne fonctionnaient pas pour moi sur CentOS. J'ai pu l'effacer comme ceci:

Sudo rm -rf /run/log/journal/*
5
stiv

Ma réponse précédente vient d'être supprimée pour être "dupliquée". Eh bien, 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. Voici donc une version plus élaborée:

journalctl -m --vacuum-time=1s a fait l'affaire pour moi. Veuillez noter le -m flag, il fusionne tous vos journaux puis les nettoie. Sans le -m flag, il n'a rien nettoyé dans mon cas (sur CentOS-7).

J'espère que cela aide.

2
fengye87

journalctl -b s'affichera uniquement à partir du démarrage le plus récent. Vous pouvez aussi utiliser -b -1, -b -2 etc. Votre horrible journée est toujours là, mais vous n'aurez pas à la voir, sauf si vous en avez besoin.

2
David

Aussi Sudo journalctl --vacuum-files 1.

1
marcio
  1. 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

  2. Effacez le fichier:
    cd /run/log/journal/<temp-string>/>system.journal

  3. Vérifiez pour voir les derniers journaux:
    journalctl -xe

1
Girish KG