Puncte:4

Ce se întâmplă cu jurnalele generate de logger dacă nu există niciun demon de logare instalat sau activ

drapel in
Dom

Dacă aveți o distribuție Linux, fie fără un demon de înregistrare instalat, fie cu demonul de înregistrare dezactivat, ce se întâmplă cu jurnalele generate de logger comanda?

Am Ubuntu 20.04.2 cu serviciul rsyslog. Când dezactivez acest serviciu, pot folosi în continuare logger comanda, nimic nu este scris în syslog, dar comanda încă acceptă intrarea mea și are un cod de ieșire zero.

Când nu există un serviciu de logare, ce se întâmplă cu jurnalele generate de logger?

Cum poate logger comanda funcționează fără unde să trimită jurnalele? De ce logger ieșiți cu succes dacă nu a fost nimic pentru a primi jurnalele?

Puncte:6
drapel fr

„Logger” trimite date către socket-ul Unix /dev/log. (Este un socket în ciuda faptului că este în /dev.)

Pe majoritatea distribuțiilor Linux, acest socket este nu mai deținut de un demon syslog tradițional â celălalt capăt al său nu merge direct la rsyslog. Mai degrabă, socket-ul /dev/log este deținut de systemd-journald serviciu, care încă rulează și primește mesaje.

# fuzor -v /dev/log
                                 COMANDA DE ACCES PID UTILIZATOR
/run/systemd/journal/dev-log: root 1 F.... systemd
                                 root 304 F.... systemd-journal

(Rețineți că init deține și socket-ul – dacă journald este oprit, dar există o anumită activitate pe socket, init va porni automat serviciul din nou… la fel cum a făcut „inetd” în trecut pentru serviciile TCP.)

Systemd-journald stochează jurnalele în /var/log/journal, pe care le puteți citi folosind journalctl -f în loc de „taila -f” obișnuită (sunt în format binar indexat). În mod normal, mesajele prin /dev/log vor continua să fie scrise acolo chiar și atunci când rsyslogd este oprit.

$ logger Bună ziua

$ journalctl -n 1
12 iulie 18:12:26 rădăcină de jar[951422]: Bună

În astfel de sisteme, pachetele rsyslogd și syslog-ng primesc doar transmise mesaje de la systemd-journald, nu direct din programe.Acestea funcționează fie ascultând la un alt soclu (în interiorul /run/systemd), către care journald redirecționează toate mesajele â sau citind direct fișierele jurnal binare din /var/log/journal.

(De obicei, accesul direct la fișierul .journal este preferat, deoarece permite rsyslogd să colecteze câmpuri suplimentare incluse de programe, care altfel s-ar pierde atunci când se utilizează redirecționarea mesajelor bazată pe socket.)

Dacă indicați „logger” către un socket Unix care nu acceptă mesaje, acesta va afișa de fapt un mesaj de eroare așa cum ar trebui:

$ python -c "din importul socketului *; socket(AF_UNIX, SOCK_DGRAM).bind('/tmp/log')"

$ logger -u /tmp/log Bună ziua
logger: socket /tmp/log: Conexiune refuzată

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.