GNU/Linux >> Znalost Linux >  >> Linux

Jak vymazat protokoly deníku Systemd

Tento rychlý tutoriál vám ukáže dva způsoby, jak vymazat protokoly žurnálu systemd ze systému Linux.

Žurnál systemd je vlastní logovací systém systemd. Je ekvivalentní syslogu v systému init. Shromažďuje a ukládá data protokolování jádra, zprávy systémových protokolů, standardní výstup a chyby pro různé služby systemd.

Počítač s Linuxem se systemd zapisuje protokoly do adresáře /var/log/journal. Pokud si pamatujete na adresářovou strukturu Linuxu, /var je místo, kde jsou uloženy systémové protokoly.

Soubory protokolu můžete zobrazit buď ručně pomocí příkazu less, nebo pomocí příkazu journalctl. Chcete-li zobrazit všechny nejnovější protokoly, použijte příkaz s možností obrácení.

journalctl -r

S těžbou dřeva je to tak, že postupem času se začne zvětšovat. A když zkontrolujete místo na disku v Linuxu, uvidíte, že to někdy zabere několik GB místa.

Dovolte mi, abych vám ukázal, jak vyčistit protokoly žurnálu systemd a uvolnit místo na disku v systému Linux.

Vymazání protokolů deníku systemd

Nejprve zkontrolujte místo, které zabírají žurnálové protokoly, pomocí příkazu du:

du -sh /var/log/journal/

Pro stejnou úlohu můžete také použít příkaz journalctl:

journalctl --disk-usage

Oba příkazy by měly poskytnout přibližně stejný výsledek:

[email protected]:~$ journalctl --disk-usage
Archived and active journals take up 1.6G in the file system.

[email protected]:~$ sudo du -sh /var/log/journal/
1.7G	/var/log/journal/

Nyní, když víte, kolik místa zabírají protokoly žurnálu, můžete se rozhodnout, zda chcete protokoly vymazat nebo ne. Pokud se rozhodnete vymazat deníky, dovolte mi ukázat vám několik způsobů, jak to udělat.

K odstranění souborů ve složce protokolu můžete samozřejmě použít příkaz rm, ale to vám nedoporučím. Příkaz journalctl vám poskytuje správný způsob zacházení se starými protokoly.

První věc, kterou byste měli udělat, je otočit soubory deníku. To označí aktuálně aktivní protokoly deníku jako archiv a vytvoří nové nové protokoly. Je to volitelné, ale je dobré to udělat.

sudo journalctl --rotate

Nyní máte tři způsoby, jak vymazat staré deníky. Vymažete protokoly starší než určitou dobu nebo odstraníte starší soubory protokolu, takže celková velikost protokolu bude omezena na předdefinované místo na disku nebo omezíte počet souborů protokolu. Podívejme se, jak používat všechny tři metody.

1. Vymazat deník deníku starší než x dní

Mějte na paměti, že protokoly jsou důležité pro účely auditu, takže byste je neměli mazat všechny najednou. Řekněme, že chcete uchovávat historii protokolů pouze dva dny. Chcete-li odstranit všechny záznamy starší než dva dny, použijte tento příkaz:

sudo journalctl --vacuum-time=2d

Takto může výstup vypadat:

Vacuuming done, freed 1.6G of archived journals from /var/log/journal/1b9ab93094fa4978beba80fd3c48a18c

Můžete také změnit časový rámec v hodinách, jako jsou 2 hodiny, v minutách, jako jsou 2 m, v sekundách, jako jsou 2 s. Pokud chcete větší časové jednotky, můžete 2 týdny nebo 2 měsíce.

2. Omezit protokoly na určitou velikost

Dalším způsobem je omezení velikosti protokolu. Tímto způsobem odstraní soubory žurnálu, dokud diskový prostor zabraný žurnálovými protokoly neklesne pod vámi zadanou velikost.

sudo journalctl --vacuum-size=100M

Tím se zmenší velikost protokolu na přibližně 100 MB.

Vacuuming done, freed 40.0M of archived journals from /var/log/journal/1b9ab93094fa4978beba80fd3c48a18c.

Velikost můžete zadat v GB s G, MB s M, KB s K atd.

3. Omezit počet souborů protokolu

Třetím způsobem je omezení počtu souborů protokolu. Journalctl má obvykle soubory protokolu pro systém a pro uživatele. Jak protokoly stárnou, jsou archivovány v různých souborech.

Můžete omezit počet archivních souborů protokolu. Řekněme, že chcete mít pouze pět souborů protokolu.

journalctl --vacuum-files=5

Odebere starší archivní soubory protokolu a ponechá pouze zadaný počet souborů protokolu.

Deleted archived journal /var/log/journal/1b9ab93094fa4978beba80fd3c48a18c/[email protected] (8.0M).
Deleted archived journal /var/log/journal/1b9ab93094fa4978beba80fd3c48a18c/[email protected] (48.0M).
Deleted archived journal /var/log/journal/1b9ab93094fa4978beba80fd3c48a18c/[email protected] (48.0M).
Vacuuming done, freed 104.0M of archived journals from /var/log/journal/1b9ab93094fa4978beba80fd3c48a18c.

Automaticky mazat staré soubory protokolu [Vyžaduje středně pokročilé znalosti příkazového řádku]

To, co jste právě udělali, prozatím vyčistí soubory protokolu. Za měsíc budou logy opět přibývat. Můžete je ručně vyčistit jednou z výše popsaných metod. Ale to je únavný úkol a možná si nebudete pamatovat, že byste to měli dělat pravidelně.

Dobrá věc je, že můžete nakonfigurovat systemd tak, aby automaticky zpracovával staré soubory protokolu.

Journalctl má konfigurační soubor /etc/systemd/journald.conf. Existují nastavení, která jsou okomentována. Řádky s komentářem v podstatě označují výchozí hodnotu těchto parametrů nastavení (i když jsou zakomentovány).

Některá z těchto výchozích nastavení můžete změnit tak, aby se soubory protokolu automaticky čistily.

Budete chtít změnit následující nastavení:

Nastavení Popis
SystemMaxUse Protokoly mohou zabrat maximální místo na disku
SystemMaxFileSize Maximální velikost JEDNOTLIVÉHO souboru protokolu
SystemMaxFiles Maximální počet souborů protokolu

Pozor!

Při úpravách konfiguračních souborů byste měli být opatrní. Musíte být schopni používat terminálový textový editor, jako je Vim, Emacs nebo Nano, abyste při úpravě souboru conf nedělali hloupé chyby.

Doporučuji nejprve vytvořit zálohu konfiguračního souboru:

cp /etc/systemd/journald.conf /etc/systemd/journald.conf.back

Nyní byste měli odkomentovat (odstranit # na začátku řádku) nastavení, které chcete použít. Například chci omezit maximální místo na disku zabrané soubory protokolu na 250 MB.

K úpravě tohoto konfiguračního souboru budete muset použít Vim nebo nějaký jiný terminálový editor. Tady je to, jak to vypadá po úpravě souboru.

#  This file is part of systemd.
#
#  systemd is free software; you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as published by
#  the Free Software Foundation; either version 2.1 of the License, or
#  (at your option) any later version.
#
# Entries in this file show the compile time defaults.
# You can change settings by editing this file.
# Defaults can be restored by simply deleting this file.
#
# See journald.conf(5) for details.

[Journal]
#Storage=auto
#Compress=yes
#Seal=yes
#SplitMode=uid
#SyncIntervalSec=5m
#RateLimitIntervalSec=30s
#RateLimitBurst=1000
SystemMaxUse=250M
#SystemKeepFree=
#SystemMaxFileSize=
#SystemMaxFiles=100

Mějte na paměti, že po úpravě konfiguračního souboru byste měli načíst změny:

sudo systemctl restart systemd-journald

Soubor journald.conf lze použít k dalšímu vyladění nastavení journalctl. Můžete dokonce nastavit úrovně protokolu (informace, ladění, chyba atd.), které chcete vidět. Je na vás, zda chcete změnit i tato nastavení.

Doufám, že se vám tento tip na vymazání souborů deníku systemd líbí. Pokud máte nějaké dotazy nebo návrhy, zanechte prosím níže komentář.


Linux
  1. Jak vytvořit službu Systemd v Linuxu

  2. Průvodce pro začátečníky „journalctl“ – Jak používat Journalctl k prohlížení a manipulaci s protokoly Systemd

  3. Jak odstranit systémové služby

  1. 5 důvodů, proč správci systému milují systemd

  2. Uvolněte místo na disku – Vymažte protokoly Systemd Journal v Ubuntu 20.04

  3. Jak zakážu přihlašování jádra do deníku systemd?

  1. Jak vymazat mezipaměť v Linuxu

  2. Jak vymazat Journalctl?

  3. Jak zajistit, aby Journald zvýšil kapacitu úložiště protokolů?