Manuales para la línea de comandos

Man » Manual de journalctl en línea: documentación detallada en línea para la página de manual de journalctl

🌍
journalctl - Imprime las entradas de registro del diario de systemd

SINOPSIS

journalctl [OPCIONES...] [COINCIDENCIAS...]

DESCRIPCIÓN

journalctl se utiliza para imprimir las entradas de registro almacenadas en el diario por systemd-journald.service(8)
y systemd-journal-remote.service(8).

Si se llama sin parámetros, mostrará el contenido del diario accesible para el usuario que realiza la llamada, comenzando con la entrada más antigua recopilada.

Si se pasan uno o más argumentos de coincidencia, la salida se filtrará en consecuencia. Una coincidencia tiene el formato "CAMPO=VALOR", por ejemplo, "_SYSTEMD_UNIT=httpd.service", que se refiere a los componentes de una entrada de diario estructurada. Consulte systemd.journal-fields(7) para obtener una lista de campos conocidos. Si se especifican varias coincidencias que coinciden con diferentes campos, la salida se filtrará según ambos, es decir, la salida resultante mostrará solo las entradas que coincidan con todas las coincidencias especificadas de este tipo. Si dos coincidencias se aplican al mismo campo, entonces se coincidirán automáticamente como alternativas, es decir, la salida resultante mostrará las entradas que coincidan con cualquiera de las coincidencias especificadas para el mismo campo. Finalmente, el carácter "+" puede aparecer como una palabra separada entre otros términos en la línea de comandos. Esto hace que todas las coincidencias antes y después se combinen en una disyunción (es decir, OR lógico).

También es posible filtrar las entradas especificando una ruta de archivo absoluta como argumento. La ruta del archivo puede ser un archivo o un enlace simbólico y el archivo debe existir en el momento de la consulta. Si una ruta de archivo se refiere a un archivo binario ejecutable, se agrega una coincidencia "_EXE=" para la ruta binaria canónica a la consulta. Si una ruta de archivo se refiere a un script ejecutable, se agrega una coincidencia "_COMM=" para el nombre del script a la consulta. Si una ruta de archivo se refiere a un nodo de dispositivo, se agregan coincidencias "_KERNEL_DEVICE=" para el nombre del kernel del dispositivo y para cada uno de sus dispositivos ancestrales a la consulta. Los enlaces simbólicos se resuelven, los nombres del kernel se sintetizan y los dispositivos primarios se identifican a partir del entorno en el momento de la consulta. En general, un nodo de dispositivo es el mejor proxy para un dispositivo real, ya que las entradas de registro generalmente no contienen campos que identifiquen un dispositivo real. Para que las entradas de registro resultantes sean correctas para el dispositivo real, las partes relevantes del entorno en el momento en que se registró la entrada, en particular el dispositivo real correspondiente al nodo de dispositivo, deben haber sido los mismos que en el momento de la consulta. Dado que los nodos de dispositivo generalmente cambian sus dispositivos correspondientes entre reinicios, especificar una ruta de nodo de dispositivo hace que las entradas resultantes se restrinjan a las del arranque actual.


Se pueden agregar restricciones adicionales mediante las opciones --boot, --unit=, etc., para limitar aún más qué entradas se mostrarán (AND lógico).

La salida se intercala de todos los archivos de registro accesibles, ya sean rotados o actualmente en uso, y independientemente de si pertenecen al propio sistema o son accesibles para los registros de usuarios. La opción --header se puede utilizar para identificar qué archivos se están mostrando.

El conjunto de archivos de registro que se utilizarán se puede modificar mediante las opciones --user, --system, --directory= y --file=, consulte a continuación.

Todos los usuarios tienen acceso a sus registros privados por usuario. Sin embargo, por defecto, solo root y los usuarios que son miembros de algunos grupos especiales tienen acceso al registro del sistema y a los registros de otros usuarios. Los miembros de los grupos "systemd-journal", "adm" y "wheel" pueden leer todos los archivos de registro. Tenga en cuenta que los dos últimos grupos tradicionalmente tienen privilegios adicionales especificados por la distribución. Los miembros del grupo "wheel" a menudo pueden realizar tareas administrativas.

La salida se pagina a través de less por defecto, y las líneas largas se "truncan" al ancho de la pantalla. La parte oculta se puede ver utilizando las teclas de flecha izquierda y flecha derecha. La paginación se puede desactivar; consulte la opción --no-pager y la sección "Entorno" a continuación.

Cuando se muestra la salida en un terminal, las líneas se colorean según la prioridad: las líneas del nivel ERROR o superior se colorean en rojo; las líneas del nivel WARNING se colorean en amarillo; las líneas del nivel NOTICE se resaltan; las líneas del nivel INFO se muestran normalmente; las líneas del nivel DEBUG se colorean en gris.

Para escribir entradas en el registro, se pueden utilizar varios métodos. En general, la salida de las unidades systemd se conecta automáticamente al registro, consulte systemd-journald.service(8). Además, se puede utilizar systemdcat(1) para enviar mensajes directamente al registro.

OPCIONES DE FUENTE

Las siguientes opciones controlan de dónde se leen los registros:

--system, --user

Muestra los mensajes de los servicios del sistema y del kernel (con --system). Muestra los mensajes del servicio del usuario actual (con --user). Si no se especifica ninguno de los dos, muestra todos los mensajes que el usuario puede ver.

La opción --user afecta la forma en que se tratan los argumentos --unit=. Consulte --unit=.

Tenga en cuenta que --user solo funciona si la persistencia del registro está habilitada, a través de la configuración Storage= en journald.conf(5).

Agregado en la versión 205.

-M, --machine=

Muestra los mensajes de un contenedor local en ejecución. Especifique un nombre de contenedor para conectarse.

Agregado en la versión 209.

-m, --merge

Muestra las entradas intercaladas de todos los registros disponibles, incluidos los remotos.

Agregado en la versión 190.

-D DIR, --directory=DIR

Toma una ruta de directorio como argumento. Si se especifica, journalctl operará en el directorio de registro especificado DIR en lugar de las rutas predeterminadas del registro del sistema y del tiempo de ejecución.

Agregado en la versión 187.

-i GLOB, --file=GLOB

Toma un patrón de archivo como argumento. Si se especifica, journalctl operará en los archivos de registro especificados que coincidan con GLOB en lugar de las rutas predeterminadas del registro del sistema y del tiempo de ejecución. Se puede especificar varias veces, en cuyo caso los archivos se intercalarán adecuadamente.


Añadido en la versión 205.

--root=ROOT

Toma una ruta de directorio como argumento. Si se especifica, journalctl operará en los directorios de registro y la jerarquía de archivos de catálogo debajo del directorio especificado en lugar del directorio raíz (por ejemplo, --update-catalog creará ROOT/var/lib/systemd/catalog/database, y los archivos de registro debajo de ROOT/run/journal/ o ROOT/var/log/journal/ se mostrarán).

Añadido en la versión 201.

--image=IMAGE

Toma una ruta a un archivo de imagen de disco o nodo de dispositivo de bloque como argumento. Si se especifica, journalctl operará en el sistema de archivos en la imagen de disco indicada. Esta opción es similar a --root=, pero opera en sistemas de archivos almacenados en imágenes de disco o dispositivos de bloque, proporcionando así una forma fácil de extraer datos de registro de imágenes de disco. La imagen de disco debe contener solo un sistema de archivos o un conjunto de sistemas de archivos dentro de una tabla de particiones GPT, siguiendo la especificación UAPI.2 Discoverable Partitions Specification[1]. Para obtener más información sobre las imágenes de disco admitidas, consulte el switch del mismo nombre de systemd-spawn(1).

Añadido en la versión 247.

--image-policy=policy

Toma una cadena de política de imagen como argumento, según systemd.image-policy(7). La política se aplica cuando se opera en la imagen de disco especificada a través de --image=, consulte arriba. Si no se especifica, el valor predeterminado es la política "*", es decir, se utilizan todos los sistemas de archivos reconocidos en la imagen.

--namespace=NAMESPACE

Toma una cadena de identificador de espacio de nombres de registro como argumento. Si no se especifica, se muestran los datos recopilados por el espacio de nombres predeterminado. Si se especifica, muestra los datos de registro del espacio de nombres especificado en su lugar. Si el espacio de nombres se especifica como "*", se muestran los datos de todos los espacios de nombres, intercalados. Si el identificador del espacio de nombres está precedido por "+", se muestran los datos del espacio de nombres especificado y del espacio de nombres predeterminado, intercalados, pero no más. Para obtener más detalles sobre los espacios de nombres de registro, consulte systemd-journald.service(8).

Añadido en la versión 245.

OPCIONES DE FILTRADO

Las siguientes opciones controlan cómo filtrar los registros de journal:

-S, --since=, -U, --until=

Comienza a mostrar las entradas en o posteriores a la fecha especificada, o en o anteriores a la fecha especificada, respectivamente. Las especificaciones de fecha deben tener el formato "2012-10-30 18:17:16". Si se omite la parte de la hora, se asume "00:00:00". Si solo se omite el componente de segundos, se asume ":00". Si se omite el componente de fecha, se asume el día actual. Alternativamente, se entienden las cadenas "yesterday", "today", "tomorrow", que se refieren a las 00:00:00 del día anterior al día actual, el día actual o el día siguiente al día actual, respectivamente. "now" se refiere a la hora actual. Finalmente, se pueden especificar tiempos relativos, con el prefijo "-" o "+", que se refieren a tiempos anteriores o posteriores a la hora actual, respectivamente. Para obtener una especificación completa de fecha y hora, consulte systemd.time(7). Tenga en cuenta que --output=short-full imprime marcas de tiempo que siguen con precisión este formato.


Añadido en la versión 195.

-c, --cursor=

Comienza a mostrar las entradas desde la ubicación en el diario especificada por el cursor pasado.

Añadido en la versión 193.

--after-cursor=

Comienza a mostrar las entradas desde la ubicación en el diario posterior a la ubicación especificada por el cursor pasado. El cursor se muestra cuando se utiliza la opción --show-cursor.

Añadido en la versión 206.

--cursor-file=ARCHIVO

Si ARCHIVO existe y contiene un cursor, comienza a mostrar las entradas después de esta ubicación. De lo contrario, muestra las entradas según las otras opciones proporcionadas. Al final, escribe el cursor de la última entrada en ARCHIVO. Utilice esta opción para leer continuamente el diario llamando a journalctl de forma secuencial.

Añadido en la versión 242.

-b [[ID][±desplazamiento]|all], --boot[=[ID][±desplazamiento]|all]

Muestra los mensajes de un arranque específico. Esto agregará una coincidencia para "_BOOT_ID=".

El argumento puede estar vacío, en cuyo caso se mostrarán los registros del arranque actual.

Si se omite el ID de arranque, un desplazamiento positivo buscará los arranques comenzando desde el principio del diario, y un desplazamiento menor o igual a cero buscará los arranques comenzando desde el final del diario. Por lo tanto, 1 significa el primer arranque encontrado en el diario en orden cronológico, 2 el segundo, etc.; mientras que -0 es el último arranque, -1 el arranque anterior y así sucesivamente. Un desplazamiento vacío es equivalente a especificar -0, excepto cuando el arranque actual no es el último (por ejemplo, porque se especificó --directory= para analizar los registros de otra máquina).

Si se especifica el ID de 32 caracteres, puede ir seguido opcionalmente de un desplazamiento que identifique el arranque en relación con el dado por el ID de arranque. Los valores negativos significan arranques anteriores y los valores positivos significan arranques posteriores. Si no se especifica el desplazamiento, se asume un valor de cero y se muestran los registros del arranque dado por el ID.

El argumento especial all se puede utilizar para anular el efecto de un uso anterior de -b.

Añadido en la versión 186.

-u, --unit=UNIT|PATTERN

Muestra los mensajes para la unidad systemd especificada UNIT (como una unidad de servicio), o para cualquiera de las unidades que coincidan con PATTERN. Si se especifica un patrón, se compara una lista de nombres de unidades que se encuentran en el diario con el patrón especificado y se utilizan todos los que coincidan. Para cada nombre de unidad, se agrega una coincidencia para los mensajes de la unidad ("_SYSTEMD_UNIT=UNIT"), junto con coincidencias adicionales para los mensajes de systemd y los mensajes sobre volcados de memoria para la unidad especificada. También se agrega una coincidencia para "_SYSTEMD_SLICE=UNIT", de modo que si la UNIT proporcionada es una unidad systemd.slice(5), se mostrarán todos los registros de los hijos de la unidad.

Con --user, todos los argumentos --unit= se convertirán para que coincidan con los mensajes del usuario como si se especificaran con --user-unit=.

Este parámetro se puede especificar varias veces.

Añadido en la versión 195.

--user-unit=

Muestra los mensajes para la unidad de sesión de usuario especificada. Esto agregará una coincidencia para los mensajes de la unidad ("_SYSTEMD_USER_UNIT=" y "_UID=") y coincidencias adicionales para los mensajes de systemd de sesión y los mensajes sobre volcados de memoria para la unidad especificada. También se agrega una coincidencia para "_SYSTEMD_USER_SLICE=UNIT", de modo que si la UNIT proporcionada es una unidad systemd.slice(5), se mostrarán todos los registros de los hijos de la unidad.


Este parámetro puede especificarse varias veces.

Añadido en la versión 198.

-I, --invocation=ID[±offset]|offset

Muestra los mensajes de una invocación específica de la unidad. Esto agregará una coincidencia para "_SYSTEMD_INVOCATION_ID=", "OBJECT_SYSTEMD_INVOCATION_ID=", "INVOCATION_ID=", "USER_INVOCATION_ID=".

Un desplazamiento positivo buscará las invocaciones de una unidad systemd desde el principio del registro, y cero o un desplazamiento negativo buscará las invocaciones comenzando desde el final del registro. Por lo tanto, 1 significa la primera invocación encontrada en el registro en orden cronológico, 2 la segunda y así sucesivamente; mientras que 0 es la invocación más reciente, -1 la invocación anterior a la más reciente, y así sucesivamente.

Si se especifica el ID de 32 caracteres, puede ir seguido opcionalmente por ±offset, lo que identifica la invocación en relación con la dada por el ID de invocación. Los valores negativos significan invocaciones anteriores y los valores positivos significan invocaciones posteriores. Si no se especifica ±offset, se asume un valor de cero y se mostrarán los registros de la invocación dada por el ID.

-I es equivalente a --invocation=0 y se mostrarán los registros de la invocación más reciente.

Cuando se especifica un desplazamiento, se debe especificar un nombre de unidad con la opción -u/--unit= o --user-unit=.

Cuando se especifica con -b/--boot=, las invocaciones se buscan dentro del arranque especificado.

Añadido en la versión 257.

-t, --identifier=SYSLOG_IDENTIFIER

Muestra los mensajes para el identificador syslog especificado SYSLOG_IDENTIFIER.

Este parámetro puede especificarse varias veces.

Añadido en la versión 217.

-T, --exclude-identifier=SYSLOG_IDENTIFIER

Excluye los mensajes para el identificador syslog especificado SYSLOG_IDENTIFIER.

Este parámetro puede especificarse varias veces.

Añadido en la versión 256.

-p, --priority=

Filtra la salida por las prioridades de los mensajes o los rangos de prioridad. Acepta un único valor numérico o un valor de registro textual (es decir, entre 0/"emerg" y 7/"debug"), o un rango de valores de registro numéricos o textuales en el formato DE…HASTA. Los niveles de registro son los niveles de registro syslog habituales según lo documentado en syslog(3), es decir, "emerg" (0), "alert" (1), "crit" (2), "err" (3), "warning" (4), "notice" (5), "info" (6), "debug" (7). Si se especifica un único nivel de registro, se mostrarán todos los mensajes con este nivel de registro o un nivel de registro inferior (por lo tanto, más importante). Si se especifica un rango, se mostrarán todos los mensajes dentro del rango, incluidos los valores inicial y final del rango. Esto agregará coincidencias "PRIORITY=" para las prioridades especificadas.

Añadido en la versión 188.

--facility=

Filtra la salida por la instalación syslog. Acepta una lista separada por comas de números o nombres de instalación. Los nombres son las instalaciones syslog habituales según lo documentado en syslog(3). Se puede usar --facility=help para mostrar una lista de los nombres de instalación conocidos y salir.


Añadido en la versión 245.

-g, --grep=
Filtra la salida para mostrar solo las entradas donde el campo MESSAGE= coincida con la expresión regular especificada.
Se utilizan expresiones regulares compatibles con Perl, consulte pcre2pattern(3) para obtener una descripción detallada de la sintaxis.

Si el patrón está completamente en minúsculas, la coincidencia no distingue entre mayúsculas y minúsculas. De lo contrario, la coincidencia distingue entre mayúsculas y minúsculas. Esto se puede anular con la opción --case-sensitive, consulte a continuación.

Cuando se utiliza con --lines= (no precedido por "+"), se implica --reverse.

Añadido en la versión 237.

--case-sensitive[=BOOLEAN]
Hace que la coincidencia de patrones distinga entre mayúsculas y minúsculas o no.

Añadido en la versión 237.

-k, --dmesg
Muestra solo los mensajes del kernel. Esto añade la coincidencia "\_TRANSPORT=kernel". Esto implica --boot=0 a menos que se especifique explícitamente lo contrario.

Añadido en la versión 205.

OPCIONES DE SALIDA

Las siguientes opciones controlan cómo se imprimen las entradas del diario:

-o, --output=
Controla el formato de las entradas del diario que se muestran. Acepta una de las siguientes opciones:

short
es el valor predeterminado y genera una salida que es en su mayoría idéntica al formato de los archivos syslog clásicos, mostrando una línea por entrada del diario.

Añadido en la versión 206.

short-full
es muy similar, pero muestra las marcas de tiempo en el formato que aceptan las opciones --since= y --until=. A diferencia de la información de la marca de tiempo que se muestra en el modo de salida corto, este modo incluye el día de la semana, el año y la información de la zona horaria en la salida, y es independiente del idioma.

Añadido en la versión 232.

short-iso
es muy similar, pero muestra las marcas de tiempo en el perfil RFC 3339[2] de ISO 8601.

Añadido en la versión 206.

short-iso-precise
como short-iso, pero incluye la precisión completa de los microsegundos.

Añadido en la versión 234.

short-precise
es muy similar, pero muestra las marcas de tiempo syslog clásicas con la precisión completa de los microsegundos.

Añadido en la versión 207.

short-monotonic
es muy similar, pero muestra marcas de tiempo monotónicas en lugar de marcas de tiempo de reloj de pared.

Añadido en la versión 206.

short-delta
como short-monotonic, pero incluye la diferencia de tiempo con la entrada anterior. Las diferencias de tiempo potencialmente poco fiables se marcan con un "*".

Añadido en la versión 252.

short-unix
es muy similar, pero muestra los segundos transcurridos desde el 1 de enero de 1970 UTC en lugar de las marcas de tiempo de reloj de pared ("tiempo UNIX"). La hora se muestra con una precisión de microsegundos.

Añadido en la versión 230.

verbose
muestra los elementos de entrada estructurados completos con todos los campos.

Añadido en la versión 206.

export
serializa el diario en una secuencia binaria (pero en su mayoría basada en texto) adecuada para copias de seguridad y transferencia de red (consulte el formato de exportación del diario[3] para obtener más información). Para importar la secuencia binaria de nuevo al formato journald nativo, utilice systemd-journal-remote(8).

Añadido en la versión 206.

json
formatea las entradas como objetos JSON, separados por caracteres de nueva línea (consulte el formato JSON del diario[4] para obtener más información). Los valores de los campos generalmente se codifican como cadenas JSON, con tres excepciones:

    Los campos de más de 4096 bytes se codifican como valores nulos. (Esto se puede desactivar pasando --all, pero tenga en cuenta que esto puede asignar objetos JSON excesivamente largos).

    Las entradas del diario permiten campos no únicos dentro de la misma entrada de registro. JSON no
    permite campos no únicos dentro de los objetos. Debido a esto, si se encuentra un campo no único,
    se utiliza una matriz JSON como valor del campo, enumerando todos los valores del campo como
    elementos.

    Los campos que contienen bytes no imprimibles o no UTF8 se codifican como matrices que contienen
    los bytes sin procesar individualmente formateados como números sin signo.

Tenga en cuenta que esta codificación es reversible (con la excepción del límite de tamaño).

Agregado en la versión 206.

    json-pretty
    formatea las entradas como estructuras de datos JSON, pero las formatea en varias líneas para
    hacerlas más legibles para los humanos.

Agregado en la versión 206.

    json-sse
    formatea las entradas como estructuras de datos JSON, pero las envuelve en un formato adecuado para
    Eventos Enviados por el Servidor [5].

Agregado en la versión 206.

    json-seq
    formatea las entradas como estructuras de datos JSON, pero las precede con un carácter separador de registros ASCII (0x1E) y las sigue con un carácter de avance de línea ASCII (0x0A), según
    JavaScript Object Notation (JSON) Text Sequences [6]
    ("application/json-seq").

Agregado en la versión 240.

    cat
    genera una salida muy concisa, mostrando solo el mensaje real de cada entrada del diario sin
    ningún metadato, ni siquiera una marca de tiempo. Si se combina con la opción --output-fields=, se mostrará
    la salida de los campos enumerados para cada registro, en lugar del mensaje.

Agregado en la versión 206.

    with-unit
    similar a short-full, pero precede los nombres de la unidad y la unidad de usuario en lugar del
    identificador syslog tradicional. Útil cuando se utilizan instancias con plantillas, ya que incluirá
    los argumentos en los nombres de las unidades.

Agregado en la versión 239.

    --truncate-newline
    Truncar cada mensaje de registro en el primer carácter de nueva línea en la salida, de modo que solo se muestre la primera
    línea de cada mensaje.

Agregado en la versión 254.

    --output-fields=
    Una lista separada por comas de los campos que deben incluirse en la salida. Esto tiene un
    efecto solo para los modos de salida que normalmente mostrarían todos los campos (verbose, export, json,
    json-pretty, json-sse y json-seq), así como en cat. Para el primero, los campos "__CURSOR",
    "__REALTIME_TIMESTAMP", "__MONOTONIC_TIMESTAMP" y "_BOOT_ID" siempre se imprimen.

Agregado en la versión 236.

    -n, --lines=
    Mostrar los eventos de diario más recientes y limitar el número de eventos mostrados. El argumento es un
    entero positivo o "all" para deshabilitar el límite. Además, si el número tiene el prefijo "+", se utilizarán los eventos de diario más antiguos en su lugar. El valor predeterminado es 10 si no se proporciona ningún argumento.

    Si se usa --follow, esta opción se implica. Cuando no tiene el prefijo "+" y se usa con --grep=, se implica --reverse.

    -r, --reverse
    Invertir la salida para que se muestren primero las entradas más recientes.

Agregado en la versión 198.

    --show-cursor
    El cursor se muestra después de la última entrada después de dos guiones:

    -- cursor: s=0639...

    El formato del cursor es privado y está sujeto a cambios.

Agregado en la versión 209.

    --utc
    Expresar la hora en tiempo universal coordinado (UTC).

Añadido en la versión 217.

-x, --catalog

Aumenta las líneas del registro con textos explicativos del catálogo de mensajes. Esto agregará textos de ayuda explicativos a los mensajes de registro en la salida donde estén disponibles. Estos textos de ayuda cortos explicarán el contexto de un error o evento de registro, posibles soluciones, así como referencias a foros de soporte, documentación para desarrolladores y cualquier otro manual relevante. Tenga en cuenta que los textos de ayuda no están disponibles para todos los mensajes, sino solo para los seleccionados. Para obtener más información sobre el catálogo de mensajes, consulte Journal Message Catalogs[7].

Nota: al adjuntar la salida de journalctl a los informes de errores, no utilice -x.

Añadido en la versión 196.

-W, --no-hostname

No muestre el campo de nombre de host de los mensajes de registro. Este interruptor solo tiene efecto en la familia corta de modos de salida (vea arriba).

Nota: esta opción no elimina las ocurrencias del nombre de host de las entradas de registro en sí, por lo que no impide que el nombre de host sea visible en los registros.

Añadido en la versión 230.

--no-full, --full, -l

Recorta los campos cuando no caben en las columnas disponibles. El valor predeterminado es mostrar los campos completos, lo que permite que se ajusten o se trunquen mediante el paginador, si se utiliza uno.

Las opciones antiguas -l/--full ya no son útiles, excepto para deshacer --no-full.

Añadido en la versión 196.

-a, --all

Muestra todos los campos completos, incluso si incluyen caracteres no imprimibles o son muy largos. Por defecto, los campos con caracteres no imprimibles se abreviatan como "datos blob". (Tenga en cuenta que el paginador puede volver a escapar los caracteres no imprimibles).

-f, --follow

Muestra solo las entradas de registro más recientes e imprime continuamente las nuevas entradas a medida que se agregan al registro, hasta que se presiona Ctrl-C (o la herramienta se termina de otra manera).

journalctl enviará un mensaje sd_notify(3) "READY=1" una vez que se inicialice y establezca correctamente su observación del registro.

--no-tail

Muestra todas las líneas de salida almacenadas, incluso en modo de seguimiento. Deshace el efecto de --lines=.

-q, --quiet

Suprime todos los mensajes informativos (es decir, "-- El registro comienza en ...", "-- Reinicio --"), cualquier mensaje de advertencia con respecto a los registros del sistema inaccesibles cuando se ejecuta como un usuario normal.

--synchronize-on-exit=

Toma un argumento booleano. Si es verdadero y se opera en modo --follow, se emite una solicitud de sincronización de registro (equivalente a journalctl --sync) cuando se recibe SIGTERM/SIGINT, y la salida del registro continúa hasta que se completa esta solicitud. Esto es útil para sincronizar la salida del registro con el tiempo de ejecución de los servicios o eventos externos, asegurando que cualquier dato de registro en cola en el subsistema de registro en el momento en que se recibe SIGTERM/SIGINT esté garantizado para ser procesado y mostrado cuando finalice la salida del registro. El valor predeterminado es falso.

Añadido en la versión 258.

OPCIONES DE CONTROL DEL PAGINADOR

Las siguientes opciones controlan el soporte de la página:

--no-pager

No canalice la salida a un paginador.

-e, --pager-end

Salta inmediatamente al final del registro dentro del paginador implícito. Esto implica --lines=1000 y --boot=0 a menos que se especifique explícitamente lo contrario, para garantizar que el paginador no almacenará en búfer registros de tamaño ilimitado. Tenga en cuenta que esta opción solo es compatible con el paginador less(1).


Agregado en la versión 198.

OPCIONES DE SELLADO DE SEGURIDAD HACIA ADELANTE (FSS)

Las siguientes opciones se pueden utilizar junto con el comando --setup-keys descrito a continuación:

--interval=

Especifica el intervalo de cambio para la clave de sellado al generar un par de claves FSS con --setup-keys. Los intervalos más cortos aumentan el consumo de CPU, pero reducen el rango de tiempo de alteraciones de registro no detectables. El valor predeterminado es de 15 minutos.

Tenga en cuenta que --output=json-sse y --output=json-seq se migran silenciosamente a --output=json.

Agregado en la versión 189.

--verify-key=

Especifica la clave de verificación FSS que se utilizará para la operación --verify.

Agregado en la versión 189.

--force

Cuando se pasa --setup-keys y el Sellado de Seguridad Hacia Adelante (FSS) ya está configurado, recrea las claves FSS.

Agregado en la versión 206.

COMANDOS

Los siguientes comandos son reconocidos. Si no se especifica ninguno, el valor predeterminado es mostrar los registros:

-N, --fields

Imprime todos los nombres de campo que se utilizan actualmente en todas las entradas del registro.

Agregado en la versión 229.

-F, --field=

Imprime todos los posibles valores de datos que el campo especificado puede tomar en todas las entradas del registro.

Agregado en la versión 195.

--list-boots

Muestra una lista tabular de los números de inicio (relativos al inicio actual), sus ID y las marcas de tiempo del primer y último mensaje que pertenece al inicio. Cuando se especifica con -n/--lines=[+]N, solo se mostrarán las primeras (cuando el número va precedido de "+") o las últimas N entradas. Cuando se especifica con -r/--reverse, la lista se mostrará en orden inverso.

Agregado en la versión 209.

--list-invocations

Enumera los ID de invocación de una unidad. Requiere un nombre de unidad con -u/--unit= o --user-unit=. Muestra una lista tabular de los números de invocación (relativos a la invocación actual o más reciente), sus ID y las marcas de tiempo del primer y último mensaje que pertenece a la invocación. Cuando se especifica -b/-boot, se mostrarán las invocaciones en el inicio. Cuando se especifica con -n/--lines=[+]N, solo se mostrarán las primeras (cuando el número va precedido de "+") o las últimas N entradas. Cuando se especifica con -r/--reverse, la lista se mostrará en orden inverso.

Agregado en la versión 257.

--disk-usage

Muestra el uso actual del disco de todos los archivos de registro. Esto muestra la suma del uso del disco de todos los archivos de registro archivados y activos.

Agregado en la versión 190.

--vacuum-size=, --vacuum-time=, --vacuum-files=
--vacuum-size= elimina los archivos de registro archivados más antiguos hasta que el espacio en disco que utilizan
sea inferior al tamaño especificado. Acepta los sufijos habituales "K", "M", "G" y "T" (con base 1024).

--vacuum-time= elimina los archivos de registro archivados con una antigüedad superior al período de tiempo especificado.
Acepta los sufijos habituales "s" (predeterminado), "m", "h", "days", "weeks", "months" y "years", consulte
systemd.time(7) para obtener más detalles.

--vacuum-files= deja solo el número de archivos de registro separados especificado.

Tenga en cuenta que ejecutar --vacuum-size= tiene solo un efecto indirecto en la salida mostrada por --disk-usage, ya que este último incluye los archivos de diario activos, mientras que la operación de limpieza solo opera en los archivos de diario archivados. De manera similar, --vacuum-files= podría no reducir realmente el número de archivos de diario por debajo del número especificado, ya que no eliminará los archivos de diario activos.

^ -vacuum-size=, --vacuum-time= y --vacuum-files= se pueden combinar en una sola invocación para aplicar cualquier combinación de un límite de tamaño, tiempo y número de archivos a los archivos de diario archivados. Especificar cualquiera de estos tres parámetros como cero es equivalente a no aplicar el límite específico, y por lo tanto es redundante.

Estos tres interruptores también se pueden combinar con --rotate en un solo comando. Si se hace esto, primero se rotan todos los archivos activos y luego se ejecuta la operación de limpieza solicitada. La rotación tiene el efecto de que todos los archivos actualmente activos se archivan (y potencialmente se abren nuevos archivos de diario vacíos como reemplazo), y por lo tanto la operación de limpieza tiene el mayor efecto, ya que puede tener en cuenta todos los datos de registro escritos hasta el momento.

Agregado en la versión 218.

^ -verify Verifica el archivo de diario para comprobar su coherencia interna. Si el archivo ha sido generado con FSS habilitado y la clave de verificación FSS se ha especificado con --verify-key=, se verifica la autenticidad del archivo de diario.

Agregado en la versión 189.

^ -sync Solicita al demonio del diario que escriba todos los datos del diario que aún no se hayan escrito en el sistema de archivos de respaldo y sincronice todos los diarios. Esta llamada no devuelve hasta que se completa la operación de sincronización. Este comando garantiza que cualquier mensaje de registro escrito antes de su invocación se almacene de forma segura en el disco cuando se devuelve.

Agregado en la versión 228.

^ -relinquish-var Solicita al demonio del diario la operación inversa de --flush: si se solicita, el demonio escribirá datos de registro adicionales en /run/log/journal/ y dejará de escribir en /var/log/journal/. Una llamada posterior a --flush hace que la salida de registro vuelva a /var/log/journal/, como se indicó anteriormente.

Agregado en la versión 243.

^ -smart-relinquish-var Similar a --relinquish-var, pero no ejecuta ninguna operación si el sistema de archivos raíz y /var/log/journal/ residen en el mismo punto de montaje. Esta operación se utiliza durante el apagado del sistema para que el demonio del diario deje de escribir datos en /var/log/journal/ en caso de que ese directorio se encuentre en un punto de montaje que deba desmontarse.

Agregado en la versión 243.

^ -flush Solicita al demonio del diario que vacíe cualquier dato de registro almacenado en /run/log/journal/ en /var/log/journal/, si el almacenamiento persistente está habilitado. Esta llamada no devuelve hasta que se completa la operación. Tenga en cuenta que esta llamada es idempotente: los datos solo se vacían de /run/log/journal/ a /var/log/journal/ una vez durante el tiempo de ejecución del sistema (pero consulte --relinquish-var a continuación), y este comando sale limpiamente sin ejecutar ninguna operación si esto ya ha ocurrido. Este comando garantiza eficazmente que todos los datos se vacíen en /var/log/journal/ en el momento en que se devuelve.


Añadido en la versión 217.

--rotate

Indica al demonio de registro que rote los archivos de registro. Esta llamada no regresa hasta que la operación de rotación se completa. La rotación de archivos de registro tiene el efecto de que todos los archivos de registro activos se marcan como archivados y se renombran, de modo que no se escriban en ellos en el futuro. Luego, se crean nuevos archivos de registro (vacíos) en su lugar. Esta operación se puede combinar con --vacuum-size=, --vacuum-time= y --vacuum-file= en un solo comando, como se indica arriba.

Añadido en la versión 227.

--header

En lugar de mostrar el contenido del registro, muestra la información de encabezado interna de los campos de registro a los que se accede.

Esta opción es particularmente útil cuando se intenta identificar las entradas de registro fuera de orden, como ocurre, por ejemplo, cuando la máquina se inicia con la hora del sistema incorrecta.

Añadido en la versión 187.

--list-catalog [ID de 128 bits...]

Enumera el contenido del catálogo de mensajes como una tabla de ID de mensajes, más sus cadenas de descripción corta.

Si se especifican ID de 128 bits, solo se muestran esas entradas.

Añadido en la versión 196.

--dump-catalog [ID de 128 bits...]

Muestra el contenido del catálogo de mensajes, con entradas separadas por una línea que consiste en dos guiones y el ID (el formato es el mismo que los archivos .catalog).

Si se especifican ID de 128 bits, solo se muestran esas entradas.

Añadido en la versión 199.

--update-catalog

Actualiza el índice del catálogo de mensajes. Este comando debe ejecutarse cada vez que se instalen, eliminen o actualicen nuevos archivos de catálogo para volver a generar el índice del catálogo binario.

Añadido en la versión 196.

--setup-keys

En lugar de mostrar el contenido del registro, genera un nuevo par de claves para el Sellado Seguro con Reenvío (FSS). Esto generará una clave de sellado y una clave de verificación. La clave de sellado se almacena en el directorio de datos del registro y debe permanecer en el host. La clave de verificación debe almacenarse externamente. Consulte la opción Sellado en journald.conf(5) para obtener información sobre el Sellado Seguro con Reenvío y para obtener un enlace a un documento académico revisado por pares que detalle la teoría criptográfica en la que se basa.

Añadido en la versión 189.

-h, --help

Imprime un texto de ayuda corto y sale.

--version

Imprime una cadena de versión corta y sale.

ESTADO DE SALIDA

En caso de éxito, se devuelve 0; de lo contrario, se devuelve un código de error distinto de cero.

ENTORNO

$SYSTEMD_LOG_LEVEL

El nivel de registro máximo de los mensajes emitidos (los mensajes con un nivel de registro más alto, es decir, menos importantes, se suprimirán). Acepta una lista separada por comas de valores. Un valor puede ser cualquiera de (en orden de importancia decreciente) emerg, alert, crit, err, warning, notice, info, debug, o un entero en el rango 0...7. Consulte syslog(3) para obtener más información. Cada valor puede tener opcionalmente como prefijo uno de console, syslog, kmsg o journal seguido de dos puntos para establecer el nivel de registro máximo para ese destino de registro específico (por ejemplo, SYSTEMD_LOG_LEVEL=debug,console:info especifica registrar a nivel de depuración, excepto cuando se registra en la consola, que debe ser a nivel de información). Tenga en cuenta que el nivel de registro máximo global tiene prioridad sobre cualquier nivel de registro máximo por destino.


$SYSTEMD_LOG_COLOR
Un valor booleano. Si es verdadero, los mensajes que se escriben en el terminal se colorearán según su prioridad.

Esta configuración solo es útil cuando los mensajes se escriben directamente en el terminal, ya que journalctl(1) y otras herramientas que muestran los registros colorearán los mensajes según el nivel de registro por sí mismas.

$SYSTEMD_LOG_TIME
Un valor booleano. Si es verdadero, los mensajes de registro de la consola tendrán un prefijo con una marca de tiempo.

Esta configuración solo es útil cuando los mensajes se escriben directamente en el terminal o en un archivo, ya que journalctl(1) y otras herramientas que muestran los registros adjuntarán marcas de tiempo según los metadatos de la entrada.

$SYSTEMD_LOG_LOCATION
Un valor booleano. Si es verdadero, los mensajes tendrán como prefijo el nombre de archivo y el número de línea en el código fuente donde se origina el mensaje.

Tenga en cuenta que la ubicación del registro a menudo se adjunta como metadatos a las entradas del registro. Incluirlo directamente en el texto del mensaje puede ser útil cuando se depuran programas.

$SYSTEMD_LOG_TID
Un valor booleano. Si es verdadero, los mensajes tendrán como prefijo el ID de subproceso numérico actual (TID).

Tenga en cuenta que esta información se adjunta como metadatos a las entradas del registro. Incluirlo directamente en el texto del mensaje puede ser útil cuando se depuran programas.

$SYSTEMD_LOG_TARGET

El destino de los mensajes de registro. Puede ser console (registrar en el terminal conectado), console-prefixed (registrar en el terminal conectado, pero con prefijos que codifican el nivel de registro y la "facilidad", consulte syslog(3)), kmsg (registrar en el búfer de registro circular del kernel), journal (registrar en el journal), journal-or-kmsg (registrar en el journal si está disponible y en kmsg en caso contrario), auto (determinar el destino de registro apropiado automáticamente, el valor predeterminado), null (deshabilitar la salida del registro).

$SYSTEMD_LOG_RATELIMIT_KMSG

Si se debe limitar la velocidad de kmsg o no. Toma un valor booleano. El valor predeterminado es "true". Si se deshabilita, systemd no limitará la velocidad de los mensajes escritos en kmsg.

$SYSTEMD_PAGER, $PAGER

Programa de paginación que se utilizará cuando no se especifique --no-pager. Se utiliza $SYSTEMD_PAGER si está definido; de lo contrario, se utiliza $PAGER. Si ni $SYSTEMD_PAGER ni $PAGER están definidos, se probará una serie de programas de paginación conocidos en orden, incluido less(1) y more(1), hasta que se encuentre uno. Si no se descubre ningún programa de paginación, no se invoca ningún programa de paginación. Establecer estas variables de entorno en una cadena vacía o en el valor "cat" es equivalente a pasar --no-pager.

Nota: si $SYSTEMD_PAGERSECURE no está definido, $SYSTEMD_PAGER y $PAGER solo se pueden utilizar para
deshabilitar el programa de paginación (con "cat" o "") y, de lo contrario, se ignoran.

$SYSTEMD_LESS

Anule las opciones que se pasan a less (por defecto "FRSXMK").

Los usuarios pueden querer cambiar dos opciones en particular:

K

Esta opción indica al programa de paginación que salga inmediatamente cuando se presiona Ctrl+C. Para permitir que less maneje Ctrl+C para volver a la línea de comandos del programa de paginación, desactive esta opción. Si el valor de $SYSTEMD_LESS no incluye "K" y el programa de paginación que se invoca es less, Ctrl+C se ignorará en el ejecutable y deberá ser manejado por el programa de paginación.


X

Esta opción indica al paginador que no envíe cadenas de inicialización y desinicialización de termcap al terminal. Por defecto, está configurado para permitir que la salida del comando permanezca visible en el terminal incluso después de que el paginador se cierre. Sin embargo, esto impide que algunas funciones del paginador funcionen, en particular, no se puede desplazar la salida paginada con el ratón.

Tenga en cuenta que establecer la variable de entorno $LESS normal no tiene ningún efecto para las invocaciones de less realizadas por las herramientas de systemd.

Consulte less(1) para obtener más información.

$SYSTEMD_LESSCHARSET

Anula el conjunto de caracteres que se pasa a less (por defecto "utf-8", si se determina que el terminal que lo invoca es compatible con UTF-8).

Tenga en cuenta que establecer la variable de entorno $LESSCHARSET normal no tiene ningún efecto para las invocaciones de less realizadas por las herramientas de systemd.

$SYSTEMD_PAGERSECURE

Los comandos comunes del paginador, como less(1), además de "paginar", es decir, desplazarse por la salida, admiten la apertura o escritura de otros archivos y la ejecución de comandos shell arbitrarios. Cuando los comandos se invocan con privilegios elevados, por ejemplo, bajo sudo(8) o pkexec(1), el paginador se convierte en un límite de seguridad. Se debe tener cuidado para que solo se utilicen programas con una funcionalidad estrictamente limitada como paginadores, y no se deben permitir funciones interactivas no deseadas, como la apertura o creación de nuevos archivos o el inicio de subprocesos. Se puede habilitar el "modo seguro" para el paginador según se describe a continuación, si el paginador lo admite (la mayoría de los paginadores no están escritos de manera que tengan esto en cuenta). Se recomienda habilitar explícitamente el "modo seguro" o deshabilitar completamente el paginador utilizando --no-pager o PAGER=cat cuando se permite que los usuarios no confiables ejecuten comandos con privilegios elevados.

Esta opción acepta un argumento booleano. Cuando se establece en verdadero, se habilita el "modo seguro" del paginador. En el "modo seguro", se establecerá LESSSECURE=1 al invocar el paginador, lo que indica al paginador que desactive los comandos que abren o crean nuevos archivos o inician nuevos subprocesos. Actualmente, solo less(1) se sabe que entiende esta variable e implementa el "modo seguro".

Cuando se establece en falso, no se impone ninguna limitación al paginador. Establecer SYSTEMD_PAGERSECURE=0 o no eliminarlo del entorno heredado puede permitir que el usuario invoque comandos arbitrarios.

Cuando $SYSTEMD_PAGERSECURE no está establecido, las herramientas de systemd intentan determinar automáticamente si se debe habilitar el "modo seguro" y si el paginador lo admite. El "modo seguro" se habilita si el UID efectivo no es el mismo que el propietario de la sesión de inicio de sesión, consulte geteuid(2) y sd_pid_get_owner_uid(3), o cuando se ejecuta bajo sudo(8) o herramientas similares ($SUDO_UID está establecido [8]). En esos casos, se establecerá SYSTEMD_PAGERSECURE=1 y los paginadores que no se sabe que implementan el "modo seguro" no se utilizarán en absoluto. Tenga en cuenta que esta detección automática solo cubre los mecanismos más comunes para elevar los privilegios y está destinada a ser una comodidad. Se recomienda establecer explícitamente $SYSTEMD_PAGERSECURE o deshabilitar el paginador.


Tenga en cuenta que, si se desea que las variables $SYSTEMD_PAGER o $PAGER se respeten, más allá de simplemente deshabilitar el paginador, también se debe establecer $SYSTEMD_PAGERSECURE.

$SYSTEMD_COLORS

Acepta un argumento booleano. Cuando es verdadero, systemd y las utilidades relacionadas utilizarán colores en su salida; de lo contrario, la salida será monocromática. Además, la variable puede tomar uno de los siguientes valores especiales: "16", "256" para restringir el uso de colores a los 16 o 256 colores ANSI básicos, respectivamente. Esto se puede especificar para anular la decisión automática basada en $TERM y la conexión del terminal.

$SYSTEMD_URLIFY

El valor debe ser booleano. Controla si se deben generar enlaces clicables en la salida para los emuladores de terminal que admitan esto. Esto se puede especificar para anular la decisión que toma systemd en función de $TERM y otras condiciones.

EJEMPLOS

Sin argumentos, se muestran todos los registros recopilados sin filtrar:

journalctl

Con una coincidencia especificada, se muestran todas las entradas con un campo que coincida con la expresión:

journalctl _SYSTEMD_UNIT=avahi-daemon.service
journalctl _SYSTEMD_CGROUP=/user.slice/user-42.slice/session-c1.scope

Si se especifican dos campos diferentes, solo se mostrarán las entradas que coincidan con ambas expresiones al mismo tiempo:

journalctl _SYSTEMD_UNIT=avahi-daemon.service _PID=28097

Si dos coincidencias se refieren al mismo campo, se mostrarán todas las entradas que coincidan con cualquiera de las expresiones:

journalctl _SYSTEMD_UNIT=avahi-daemon.service _SYSTEMD_UNIT=dbus.service

Si se utiliza el separador "+", se pueden combinar dos expresiones en un OR lógico. Lo siguiente mostrará todos los mensajes del proceso del servicio Avahi con el PID 28097, además de todos los mensajes del servicio D-Bus (de cualquiera de sus procesos):

journalctl _SYSTEMD_UNIT=avahi-daemon.service _PID=28097 + _SYSTEMD_UNIT=dbus.service

Para mostrar todos los campos emitidos por una unidad y sobre la unidad, se debe utilizar la opción -u/--unit=. journalctl -u name se expande a un filtro complejo similar a

_SYSTEMD_UNIT=name.service
+ UNIT=name.service _PID=1
+ OBJECT_SYSTEMD_UNIT=name.service _UID=0
+ COREDUMP_UNIT=name.service _UID=0 MESSAGE_ID=fc2e22bc6ee647b6b90729ab34a250b1

(consulte systemd.journal-fields(7) para obtener una explicación de estos patrones).

Mostrar todos los registros generados por el ejecutable D-Bus:

journalctl /usr/bin/dbus-daemon

Mostrar todos los registros del kernel de la sesión de arranque anterior:

journalctl -k -b -1

Mostrar una visualización de registro en vivo de un servicio del sistema apache.service:

journalctl -f -u apache

VER TAMBIÉN

systemd(1), systemd-cat(1), systemd-journald.service(8), systemctl(1), coredumpctl(1), systemd.journal-fields(7), journald.conf(5), systemd.time(7), systemd-journal-remote.service(8), systemd-journal-upload.service(8)

NOTAS

UAPI.2 Especificación de particiones detectables
https://uapi-group.org/specifications/specs/discoverable_partitions_specification

RFC 3339
https://tools.ietf.org/html/rfc3339

    Formato de exportación de registros
https://systemd.io/JOURNAL_EXPORT_FORMATS#journal-export-format

    Formato JSON de registros
https://systemd.io/JOURNAL_EXPORT_FORMATS#journal-json-format

    Eventos enviados por el servidor
https://developer.mozilla.org/en-US/docs/Server-sent_events/Using_server-sent_events

    Secuencias de texto de notación de objetos JavaScript (JSON)
https://tools.ietf.org/html/rfc7464

    Catálogos de mensajes de registros
https://systemd.io/CATALOG

    Se recomienda que otras herramientas establezcan y verifiquen $SUDO_UID según corresponda, tratándolo como
una interfaz común.