La comanda journalctl serveix per consultar els registres (logs) del sistema en qualsevol distribució amb systemd: Debian, Ubuntu, Fedora, Rocky, Alma, Arch, Raspberry Pi OS… Hi trobaràs els missatges del nucli, dels serveis, de l'arrencada i de la majoria de programes, tot en un sol lloc i amb filtres molt potents per data, servei, prioritat o text. És la primera eina que cal fer servir quan alguna cosa falla. Què és el journal i com funciona El servei systemd-journald recull els missatges del sistema i els desa en un format binari i indexat (el journal), en lloc dels fitxers de text de /var/log. Això permet fer cerques molt ràpides i filtrar per camps (servei, PID, usuari, prioritat…), i journalctl és l'eina per llegir-lo. Coses a saber: Permisos: un usuari normal només veu els seus propis missatges. Per veure els de tot el sistema, cal sudo o pertànyer al grup systemd-journal o adm. On es desa: si existeix el directori /var/log/journal, el registre és persistent i es conserva entre reinicis; si no, es desa a la memòria (/run/log/journal) i es perd en apagar. A Debian (des de la versió 11), Ubuntu i Fedora és persistent per defecte. Raspberry Pi OS, en canvi, el configura en memòria per estalviar escriptures a la targeta SD (Storage=volatile). rsyslog: molts sistemes encara envien una còpia dels missatges a fitxers de text com /var/log/syslog, però a Debian 12 i posteriors rsyslog ja no s'instal·la per defecte, i el journal és l'única font. Sintaxi journalctl [opcions] [camp=valor...] Sense opcions, mostra tots els registres, del més antic al més recent, dins d'un paginador (less): fes servir les fletxes per moure't, / per cercar, G per anar al final i q per sortir. Opcions més útils OpcióQuè fa-eObre el paginador directament al final (els missatges més recents)-rOrdre invers: els més recents primer-n NNomés les N últimes entrades-fSegueix els missatges nous en temps real (com tail -f)-u serveiNomés els missatges d'una unitat de systemd, p. ex. -u ssh-b / -b -1Només l'arrencada actual / l'anterior--list-bootsLlista les arrencades que hi ha al registre-kMissatges del nucli de l'arrencada actual (com dmesg)-p prioritatPrioritat mínima: emerg, alert, crit, err, warning, notice, info, debug-S, --since / -U, --untilDes de / fins a una data-g patróNomés els missatges que coincideixen amb el patró (expressió regular)-t identificadorPer identificador de syslog, p. ex. -t sudo-o formatFormat de sortida: short-iso, cat, json, json-pretty, verbose…-xAfegeix explicacions als missatges que en tenen--no-pagerEscriu directament al terminal, sense paginador--disk-usageEspai que ocupa el registre Exemples Els últims missatges $ journalctl -n 3 Oct 04 09:05:26 servidor avahi-daemon[741]: Registering new address record for fe80::a886:24ff:fe96:ceea on vethceda2f0.*. Oct 04 09:05:34 servidor systemd[1]: NetworkManager-dispatcher.service: Deactivated successfully. Oct 04 09:05:35 servidor kernel: [UFW BLOCK] IN=eth0 OUT= ... SRC=203.0.113.34 DST=192.168.0.134 ... PROTO=UDP SPT=7005 DPT=51413 LEN=112 Cada línia té la data, el nom de l'equip, el programa amb el seu PID entre claudàtors i el missatge. Per veure-ho tot però començant pel final: journalctl -e En temps real journalctl -f Molt útil mentre reinicies un servei o reprodueixes un error en una altra finestra. Es pot combinar amb altres filtres: journalctl -f -u apache2. Els missatges d'un servei $ sudo journalctl -u ssh -n 2 Oct 04 09:04:23 servidor sshd-session[2165687]: Failed password for root from 203.0.113.84 port 33414 ssh2 Oct 04 09:04:26 servidor sshd-session[2165687]: Connection closed by authenticating user root 203.0.113.84 port 33414 [preauth] És el primer que has de mirar quan un servei no arrenca, juntament amb systemctl status servei. El nom de la unitat canvia segons la distribució: ssh a Debian i Ubuntu, sshd a Fedora i RHEL; apache2 o httpd. Només errors $ sudo journalctl -p err -b -n 3 Oct 04 03:35:36 servidor sshd-session[2120562]: error: kex_exchange_identification: read: Connection reset by peer Oct 04 04:24:19 servidor sshd-session[2126627]: error: Protocol major versions differ: 2 vs. 1 Oct 04 07:41:38 servidor sshd-session[2151235]: error: kex_exchange_identification: read: Connection reset by peer -p err mostra els missatges de prioritat err i les més greus (crit, alert, emerg). També es pot indicar un interval: -p warning..err. Per dates journalctl --since "2026-10-01" --until "2026-10-02" journalctl --since "1 hour ago" journalctl --since yesterday -u cron journalctl --since "09:00" --until "09:30" Per arrencada journalctl --list-boots journalctl -b # arrencada actual journalctl -b -1 # l'anterior: útil si l'equip s'ha penjat o reiniciat sol Si -b -1 respon no persistent journal was found, el registre no és persistent i es va perdre en reiniciar (vegeu més avall com activar-lo). Missatges del nucli journalctl -k És l'equivalent a dmesg: detecció de maquinari, errors de disc, discos USB que es connecten, el tallafoc… Cercar un text $ sudo journalctl -g 'Failed password' -n 2 Oct 04 08:55:32 servidor sshd-session[2160402]: Failed password for invalid user admin from 198.51.100.90 port 25804 ssh2 Oct 04 09:04:23 servidor sshd-session[2165687]: Failed password for root from 203.0.113.84 port 33414 ssh2 -g no distingeix majúscules de minúscules si el patró és tot en minúscules. Per camps: PID, usuari, programa journalctl _PID=1234 journalctl _UID=1000 journalctl _COMM=sshd-session journalctl -t sudo # qui ha fet servir sudo Amb -o verbose o -o json-pretty veuràs tots els camps que té cada entrada i que pots fer servir com a filtre. Exportar a un fitxer journalctl -b -u apache2 --no-pager > registre_apache.txt journalctl -b -o short-iso --no-pager > arrencada.txt Quan redirigeixes la sortida, journalctl ja no fa servir el paginador. El format short-iso posa l'any i la zona horària, que el format normal no mostra. Mida i manteniment $ journalctl --disk-usage Archived and active journals take up 70.8M in the file system. Per defecte, el journal pot ocupar fins al 10 % del sistema de fitxers (amb un màxim de 4 GiB). Per reduir-lo: sudo journalctl --vacuum-size=500M # deixa'l en 500 MiB sudo journalctl --vacuum-time=30d # esborra el que tingui més de 30 dies Per fixar-ne un límit permanent, crea /etc/systemd/journald.conf.d/mida.conf amb: [Journal] SystemMaxUse=500M i reinicia el servei amb sudo systemctl restart systemd-journald. Activar el registre persistent Si la teva distribució el desa només a la memòria, crea un fitxer /etc/systemd/journald.conf.d/persistent.conf: [Journal] Storage=persistent i reinicia systemd-journald. A partir d'aquí, journalctl -b -1 funcionarà després de cada reinici. En un Raspberry Pi amb targeta SD, tingues en compte que augmenten les escriptures. Articles relacionats Guia completa de journalctl per a administradors de sistemes. Com funciona l'arrencada de Linux. Resoldre un kernel panic després d'actualitzar el nucli. Detectar atacs amb els registres d'Apache. tail: seguir fitxers de registre de text.