systemd journald, pulizie - logger e systemd-cat

Ho un paio di piccoli aggiornamenti a seguito di questo post:
https://www.gabrielemerli.com/?p=2896

1) logger e systemd-cat

Mi capitava spesso (all'interno di script bash) di inviare esplicitamente dei messaggi a syslog tramite il comando logger. Volendo fare la stessa cosa tramite systemd si può utilizzare in questo modo il comando systemd-cat.

  • -t "backup_server" è un identificatore che mi aiuterà a recuperare tutti i messaggi di questo tipo all'interno del journal.
  • /usr/bin/echo "Inizio alle ore: " $DATA -> Questo è queanto viene scritto nel journal di systemd, e poi passato a syslog (me lo ritroverò in /var/log/messages, per cui credo che la facility non sia specificata).

Mi basterà poi digitare

per vedere tutti i messaggi con l'etichetta "backup_server", oppure

per guardare solo le ultime 100 righe  del journal e stampare in tempo reale quelle che vengono aggiunte dal sistema.

In /var/log/messages mi trovo la riga di log di questo tipo:

 

2) Pulizia dei log, vacuum

Avevo deciso di conservare il journal configurando
/etc/systemd/journald.conf
in questo modo

e creando la cartella /var/log/journal.

Nel corso dei mesi la cartella si è popolata

andando a occupare lo spazio che gli avevo assegnato (circa).

Il guaio è che qualcosa non stava funzionando propriamente perchè l'output del comand

non mi dava alcun risultato.
C'erano inoltre delle incongruenze in ciò che mi faceva vedere il comando journalctl -b N.
N = 0 , ovvero senza N -> Mi fa vedere i log dal boot corrente.
N = 1 -> Mi dovrebbe far vedere il log dal primo boot memorizzato.
N = -1 -> MI dovrebbe far  vedere il log dal penultimo boot memorizzato.

Il guaio è che, nel mio caso, funzionava anche il comando journalctl -b -9999: evidentemente qualcosa era andato storto.
Ho quindi deciso di fare un po' di pulizia dei log, che si effettua col comando

--vacuum-time=1months  -> Conservo solo i log dell'ultimo mese.
Avrei potuto anche specificare una dimensione, tipo journalctl --vacuum-size=100M:  in questo caso avrei conservato solo 100M di log.

Purtroppo però ho sbagliato comando, o meglio ho abbreviato 1month in 1m, che invece significa 1 minuto, il che ha praticamente cancellato tutto.

Queste le corrette abbreviazioni (da documentazione)
"s", "m", "h", "days", "months", "weeks" and "years"

La pulizia è andata a buon fine.

Questo piccolo errore mi ha permesso però di approfondire questo strano effetto:

ovvero, ho 2 boot conservati, pur avendo eliminato tutti i dati più vecchi di 1 minuto.

Questo perchè, da documentazione, l' operazione di svuotamento (vacuuming) opera unicamente sui file del journal archiviati, non su quelli attualmente attivi.


Documentazione
https://www.freedesktop.org/software/systemd/man/journalctl.html

Print Friendly, PDF & Email