chiark / gitweb /
journalctl: Add support for showing messages from a previous boot
[elogind.git] / man / journalctl.xml
index cd17ca6ae7fb33d5e3b3723bdb8d087254e6db9d..0e779b952c0813538ce47af48320eccd5339d858 100644 (file)
@@ -49,7 +49,9 @@
 
         <refsynopsisdiv>
                 <cmdsynopsis>
-                        <command>journalctl <arg choice="opt" rep="repeat">OPTIONS</arg> <arg choice="opt" rep="repeat">MATCHES</arg></command>
+                        <command>journalctl</command>
+                        <arg choice="opt" rep="repeat">OPTIONS</arg>
+                        <arg choice="opt" rep="repeat">MATCHES</arg>
                 </cmdsynopsis>
         </refsynopsisdiv>
 
                 journal as written by
                 <citerefentry><refentrytitle>systemd-journald.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>.</para>
 
-                <para>If called without parameter will show the full
+                <para>If called without parameters, it will show the full
                 contents of the journal, starting with the oldest
                 entry collected.</para>
 
-                <para>If one or more match arguments are passed the
+                <para>If one or more match arguments are passed, the
                 output is filtered accordingly. A match is in the
                 format <literal>FIELD=VALUE</literal>,
                 e.g. <literal>_SYSTEMD_UNIT=httpd.service</literal>,
@@ -74,7 +76,7 @@
                 entry. See
                 <citerefentry><refentrytitle>systemd.journal-fields</refentrytitle><manvolnum>7</manvolnum></citerefentry>
                 for a list of well-known fields. If multiple matches
-                are specified matching different fields the log
+                are specified matching different fields, the log
                 entries are filtered by both, i.e. the resulting output
                 will show only entries matching all the specified
                 matches of this kind. If two matches apply to the same
                 alternatives, i.e. the resulting output will show
                 entries matching any of the specified matches for the
                 same field. Finally, if the character
-                "<literal>+</literal>" appears as separate word on the
-                command line all matches before and after are combined
+                <literal>+</literal> appears as separate word on the
+                command line, all matches before and after are combined
                 in a disjunction (i.e. logical OR).</para>
 
+                <para>As shortcuts for a few types of field/value
+                matches, file paths may be specified. If a file path
+                refers to an executable file, this is equivalent to an
+                <literal>_EXE=</literal> match for the canonicalized
+                binary path. Similarly, if a path refers to a device
+                node, this is equivalent to a
+                <literal>_KERNEL_DEVICE=</literal> match for the
+                device.</para>
+
                 <para>Output is interleaved from all accessible
                 journal files, whether they are rotated or currently
-                being written, and regardless whether they belong to the
+                being written, and regardless of whether they belong to the
                 system itself or are accessible user journals.</para>
 
                 <para>All users are granted access to their private
-                per-user journals. However, by default only root and
+                per-user journals. However, by default, only root and
                 users who are members of the <literal>adm</literal>
                 group get access to the system journal and the
                 journals of other users.</para>
+
+                <para>The output is paged through
+                <command>less</command> by default, and long lines are
+                "truncated" to screen width. The hidden part can be
+                viewed by using the left-arrow and right-arrow
+                keys. Paging can be disabled, see
+                <option>--no-pager</option> and section Environment
+                below.</para>
+
+                <para>When outputing to a tty, lines are colored
+                according to priority: lines of level ERROR and higher
+                are colored red, lines of level NOTICE and higher are
+                highlighted, and other lines are displayed normally.
+                </para>
         </refsect1>
 
         <refsect1>
 
                 <variablelist>
                         <varlistentry>
-                                <term><option>--help</option></term>
                                 <term><option>-h</option></term>
+                                <term><option>--help</option></term>
 
                                 <listitem><para>Prints a short help
                                 text and exits.</para></listitem>
                         </varlistentry>
 
                         <varlistentry>
-                                <term><option>--all</option></term>
+                                <term><option>-l</option></term>
+                                <term><option>--full</option></term>
+
+                                <listitem><para>Show all (printable) fields in
+                                full.</para></listitem>
+                        </varlistentry>
+
+                        <varlistentry>
                                 <term><option>-a</option></term>
+                                <term><option>--all</option></term>
 
                                 <listitem><para>Show all fields in
                                 full, even if they include unprintable
                         </varlistentry>
 
                         <varlistentry>
-                                <term><option>--follow</option></term>
                                 <term><option>-f</option></term>
+                                <term><option>--follow</option></term>
 
-                                <listitem><para>Show only most recent
+                                <listitem><para>Show only the most recent
                                 journal entries, and continuously print
                                 new entries as they are appended to
                                 the journal.</para></listitem>
                         </varlistentry>
 
                         <varlistentry>
-                                <term><option>--lines=</option></term>
+                                <term><option>-e</option></term>
+                                <term><option>--pager-end</option></term>
+
+                                <listitem><para>Immediately jump to
+                                the end of the journal inside the
+                                implied pager tool. This implies
+                                <option>-n1000</option> to guarantee
+                                that the pager will not buffer logs of
+                                unbounded size. This may be overridden
+                                with an explicit <option>-n</option>
+                                with some other numeric value on the
+                                command line. Note that this option is
+                                only supported for the
+                                <citerefentry><refentrytitle>less</refentrytitle><manvolnum>1</manvolnum></citerefentry>
+                                pager.</para></listitem>
+                        </varlistentry>
+
+                        <varlistentry>
                                 <term><option>-n</option></term>
+                                <term><option>--lines=</option></term>
 
-                                <listitem><para>Controls the number of
-                                journal lines to show, counting from
-                                the most recent ones. Takes a positive
-                                integer argument. In follow mode
-                                defaults to 10, otherwise is unset
-                                thus not limiting how many lines are
-                                shown.</para></listitem>
+                                <listitem><para>Show the most recent
+                                journal events and limit the number of
+                                events shown. If
+                                <option>--follow</option> is used,
+                                this option is implied. The argument,
+                                a positive integer, is optional, and
+                                defaults to 10. </para></listitem>
                         </varlistentry>
 
                         <varlistentry>
                         </varlistentry>
 
                         <varlistentry>
-                                <term><option>--output=</option></term>
+                                <term><option>-r</option></term>
+                                <term><option>--reverse</option></term>
+
+                                <listitem><para>Reverse output, so the newest
+                                entries are displayed first.</para></listitem>
+                        </varlistentry>
+
+                        <varlistentry>
                                 <term><option>-o</option></term>
+                                <term><option>--output=</option></term>
 
                                 <listitem><para>Controls the
                                 formatting of the journal entries that
                                 <literal>verbose</literal>,
                                 <literal>export</literal>,
                                 <literal>json</literal>,
+                                <literal>json-pretty</literal>,
+                                <literal>json-sse</literal>,
                                 <literal>cat</literal>. <literal>short</literal>
                                 is the default and generates an output
                                 that is mostly identical to the
-                                formatting of classic syslog log
+                                formatting of classic syslog
                                 files, showing one line per journal
                                 entry. <literal>short-monotonic</literal>
                                 is very similar but shows monotonic
                                 Export Format</ulink> for more
                                 information). <literal>json</literal>
                                 formats entries as JSON data
-                                structures. <literal>cat</literal>
+                                structures, one per
+                                line (see <ulink
+                                url="http://www.freedesktop.org/wiki/Software/systemd/json">Journal
+                                JSON Format</ulink> for more
+                                information). <literal>json-pretty</literal>
+                                also formats entries as JSON data
+                                structures, but formats them in
+                                multiple lines in order to make them
+                                more readable for
+                                humans. <literal>json-sse</literal>
+                                also formats entries as JSON data
+                                structures, but wraps them in a format
+                                suitable for <ulink
+                                url="https://developer.mozilla.org/en-US/docs/Server-sent_events/Using_server-sent_events">Server-Sent
+                                Events</ulink>. <literal>cat</literal>
                                 generates a very terse output only
                                 showing the actual message of each
                                 journal entry with no meta data, not
                         </varlistentry>
 
                         <varlistentry>
-                                <term><option>--quiet</option></term>
+                                <term><option>-x</option></term>
+                                <term><option>--catalog</option></term>
+
+                                <listitem><para>Augment log lines with
+                                explanation texts from the message
+                                catalog. This will add explanatory
+                                help texts to log messages in the
+                                output where this is available. These
+                                short help texts will explain the
+                                context of an error or log event,
+                                possible solutions, as well as
+                                pointers to support forums, developer
+                                documentation and any other relevant
+                                manuals. Note that help texts are not
+                                available for all messages, but only
+                                for selected ones. For more
+                                information on the message catalog,
+                                please refer to the <ulink
+                                url="http://www.freedesktop.org/wiki/Software/systemd/catalog">Message
+                                Catalog Developer
+                                Documentation</ulink>.</para></listitem>
+                        </varlistentry>
+
+                        <varlistentry>
                                 <term><option>-q</option></term>
+                                <term><option>--quiet</option></term>
 
                                 <listitem><para>Suppresses any warning
                                 message regarding inaccessible system
                         </varlistentry>
 
                         <varlistentry>
-                                <term><option>--local</option></term>
-                                <term><option>-l</option></term>
+                                <term><option>-m</option></term>
+                                <term><option>--merge</option></term>
 
-                                <listitem><para>Show only locally
-                                generated messages.</para></listitem>
+                                <listitem><para>Show entries
+                                interleaved from all available
+                                journals, including remote
+                                ones.</para></listitem>
                         </varlistentry>
 
                         <varlistentry>
-                                <term><option>--this-boot</option></term>
-                                <term><option>-b</option></term>
-
-                                <listitem><para>Show data only from
-                                current boot.</para></listitem>
+                                <term><option>-b <optional><replaceable>ID</replaceable></optional></option></term>
+                                <term><option>--boot=<optional><replaceable>ID</replaceable></optional></option></term>
+
+                                <listitem><para>Show messages from the specified
+                                boot <replaceable>ID</replaceable> or from
+                                current boot if no <replaceable>ID</replaceable>
+                                is given. This will add a match for
+                                <literal>_BOOT_ID=</literal>.</para>
+
+                                <para>The argument is a 128 bit ID given in
+                                short or UUID form and optionally followed by
+                                <literal>:n</literal> which identifies the nth
+                                boot relative to the boot ID given to the left
+                                of <literal>:</literal>. Supplying a negative
+                                value for n will look for a past boot and a
+                                positive value for a future boot. The boot IDs
+                                are searched for in chronological order. If no
+                                number is provided after <literal>:</literal>,
+                                <literal>-1</literal> is assumed. A value of 0
+                                is valid and equivalent to omitting
+                                <literal>:0</literal>.</para>
+
+                                <para>Alternatively, the argument may constist
+                                only of <literal>:n</literal>. In this case, a
+                                positive value will look up the nth boot
+                                starting from the beginning of the jouranl, a
+                                negative value will look up a previous boot
+                                relative to the current boot. <literal>:0</literal>
+                                will look for the current boot ID. Thus,
+                                <literal>:1</literal> is the first boot found in
+                                the journal, <literal>:2</literal> the second
+                                and so on; while <literal>:-1</literal> is the
+                                previous boot, <literal>:-2</literal> the boot
+                                before that and so on. Omitting a value after
+                                <literal>:</literal> will look for the previous
+                                boot.</para></listitem>
                         </varlistentry>
 
                         <varlistentry>
-                                <term><option>--directory=</option></term>
-                                <term><option>-D</option></term>
+                                <term><option>-k</option></term>
+                                <term><option>--dmesg</option></term>
 
-                                <listitem><para>Takes an absolute
-                                directory path as argument. If
-                                specified will operate on the
-                                specified journal directory instead of
-                                the default runtime and system journal
-                                paths.</para></listitem>
+                                <listitem><para>Show only kernel messages. This
+                                implies <option>-b</option> and adds the match
+                                <literal>_TRANSPORT=kernel</literal>.
+                                </para></listitem>
                         </varlistentry>
 
                         <varlistentry>
-                                <term><option>--new-id128</option></term>
-
-                                <listitem><para>Instead of showing
-                                journal contents generate a new 128
-                                bit ID suitable for identifying
-                                messages. This is intended for usage
-                                by developers who need a new
-                                identifier for a new message they
-                                introduce and want to make
-                                recognizable. Will print the new ID in
-                                three different formats which can be
-                                copied into source code or
-                                similar.</para></listitem>
+                                <term><option>-u</option></term>
+                                <term><option>--unit=</option></term>
+
+                                <listitem><para>Show messages for the
+                                specified systemd unit. This will add
+                                a match for messages from the unit
+                                (<literal>_SYSTEMD_UNIT=</literal>)
+                                and additional matches for messages
+                                from systemd and messages about
+                                coredumps for the specified unit.</para>
+                                <para>This parameter can be specified multiple times.
+                                </para></listitem>
                         </varlistentry>
 
                         <varlistentry>
-                                <term><option>--header</option></term>
-
-                                <listitem><para>Instead of showing
-                                journal contents show internal header
-                                information of the journal fiels
-                                accessed.</para></listitem>
+                                <term><option>--user-unit=</option></term>
+
+                                <listitem><para>Show messages for the
+                                specified user session unit. This will
+                                add a match for messages from the unit
+                                (<literal>_SYSTEMD_USER_UNIT=</literal>
+                                and <literal>_UID=</literal>) and
+                                additional matches for messages from
+                                session systemd and messages about
+                                coredumps for the specified unit.</para>
+                                <para>This parameter can be specified multiple times.
+                                </para></listitem>
                         </varlistentry>
 
                         <varlistentry>
                                 <literal>notice</literal> (5),
                                 <literal>info</literal> (6),
                                 <literal>debug</literal> (7). If a
-                                single log level is specified all
-                                messages with this log levels or a
+                                single log level is specified, all
+                                messages with this log level or a
                                 lower (hence more important) log level
-                                are shown. If a range is specified all
+                                are shown. If a range is specified, all
                                 messages within the range are shown,
                                 including both the start and the end
-                                value of the range.</para></listitem>
+                                value of the range. This will add
+                                <literal>PRIORITY=</literal> matches
+                                for the specified
+                                priorities.</para></listitem>
+                        </varlistentry>
+
+                        <varlistentry>
+                                <term><option>-c</option></term>
+                                <term><option>--cursor=</option></term>
+
+                                <listitem><para>Start showing entries
+                                from the location in the journal
+                                specified by the passed
+                                cursor.</para></listitem>
+                        </varlistentry>
+
+                        <varlistentry>
+                                <term><option>--since=</option></term>
+                                <term><option>--until=</option></term>
+
+                                <listitem><para>Start showing entries
+                                on or newer than the specified date,
+                                or on or older than the specified
+                                date, respectively. Date specifications
+                                should be of the format
+                                <literal>2012-10-30 18:17:16</literal>.
+                                If the time part is omitted,
+                                <literal>00:00:00</literal> is assumed.
+                                If only the seconds component is omitted,
+                                <literal>:00</literal> is assumed. If the
+                                date component is omitted, the current
+                                day is assumed. Alternatively the strings
+                                <literal>yesterday</literal>,
+                                <literal>today</literal>,
+                                <literal>tomorrow</literal> are
+                                understood, which refer to 00:00:00 of
+                                the day before the current day, the
+                                current day, or the day after the
+                                current day, respectively. <literal>now</literal>
+                                refers to the current time. Finally,
+                                relative times may be specified,
+                                prefixed with <literal>-</literal> or
+                                <literal>+</literal>, referring to
+                                times before or after the current
+                                time, respectively.</para></listitem>
+                        </varlistentry>
+
+                        <varlistentry>
+                                <term><option>-F</option></term>
+                                <term><option>--field=</option></term>
+
+                                <listitem><para>Print all possible
+                                data values the specified field can
+                                take in all entries of the
+                                journal.</para></listitem>
+                        </varlistentry>
+
+                        <varlistentry>
+                                <term><option>--system</option></term>
+                                <term><option>--user</option></term>
+
+                                <listitem><para>Show messages from
+                                system services and the kernel (with
+                                <option>--system</option>).  Show
+                                messages from service of current user
+                                (with <option>--user</option>).
+                                If neither is specified, show all
+                                messages that the user can see.
+                                </para></listitem>
+                        </varlistentry>
+
+                        <varlistentry>
+                                <term><option>-D <replaceable>DIR</replaceable></option></term>
+                                <term><option>--directory=<replaceable>DIR</replaceable></option></term>
+
+                                <listitem><para>Takes a directory path
+                                as argument. If specified, journalctl
+                                will operate on the specified journal
+                                directory
+                                <replaceable>DIR</replaceable> instead
+                                of the default runtime and system
+                                journal paths.</para></listitem>
+                        </varlistentry>
+
+                        <varlistentry>
+                                <term><option>--file=<replaceable>GLOB</replaceable></option></term>
+
+                                <listitem><para>Takes a file glob as
+                                argument. If specified, journalctl will
+                                operate on the specified journal files
+                                matching <replaceable>GLOB</replaceable>
+                                instead of the default runtime and
+                                system journal paths. May be specified
+                                multiple times, in which case files will
+                                be suitably interleaved.</para></listitem>
+                        </varlistentry>
+
+                        <varlistentry>
+                                <term><option>--root=<replaceable>ROOT</replaceable></option></term>
+
+                                <listitem><para>Takes a directory path
+                                as argument. If specified, journalctl
+                                will operate on catalog file hierarchy
+                                underneath the specified directory
+                                instead of the root directory
+                                (e.g. <option>--update-catalog</option>
+                                will create
+                                <filename><replaceable>ROOT</replaceable>/var/lib/systemd/catalog/database</filename>).
+                                </para></listitem>
+                        </varlistentry>
+
+                        <varlistentry>
+                                <term><option>--new-id128</option></term>
+
+                                <listitem><para>Instead of showing
+                                journal contents, generate a new 128
+                                bit ID suitable for identifying
+                                messages. This is intended for usage
+                                by developers who need a new
+                                identifier for a new message they
+                                introduce and want to make
+                                recognizable. This will print the new ID in
+                                three different formats which can be
+                                copied into source code or
+                                similar.</para></listitem>
+                        </varlistentry>
+
+                        <varlistentry>
+                                <term><option>--header</option></term>
+
+                                <listitem><para>Instead of showing
+                                journal contents, show internal header
+                                information of the journal fields
+                                accessed.</para></listitem>
+                        </varlistentry>
+
+                        <varlistentry>
+                                <term><option>--disk-usage</option></term>
+
+                                <listitem><para>Shows the current disk
+                                usage of all
+                                journal files.</para></listitem>
+                        </varlistentry>
+
+                        <varlistentry>
+                                <term><option>--list-catalog
+                                <optional><replaceable>ID128...</replaceable></optional>
+                                </option></term>
+
+                                <listitem><para>List the contents of
+                                the message catalog, as table of
+                                message IDs plus their short
+                                description strings.</para>
+
+                                <para>If any
+                                <replaceable>ID128</replaceable>s are
+                                specified, only those entries are shown.
+                                </para>
+                                </listitem>
+                        </varlistentry>
+
+                        <varlistentry>
+                                <term><option>--dump-catalog
+                                <optional><replaceable>ID128...</replaceable></optional>
+                                </option></term>
+
+                                <listitem><para>Show the contents of
+                                the message catalog, with entries
+                                separated by a line consisting of two
+                                dashes and the id (the format is the
+                                same as <filename>.catalog</filename>
+                                files.</para>
+
+                                <para>If any
+                                <replaceable>ID128</replaceable>s are
+                                specified, only those entries are shown.
+                                </para>
+                                </listitem>
+                        </varlistentry>
+
+                        <varlistentry>
+                                <term><option>--update-catalog</option></term>
+
+                                <listitem><para>Update the message
+                                catalog index. This command needs to
+                                be executed each time new catalog
+                                files are installed, removed or
+                                updated to rebuild the binary catalog
+                                index.</para></listitem>
+                        </varlistentry>
+
+                        <varlistentry>
+                                <term><option>--setup-keys</option></term>
+
+                                <listitem><para>Instead of showing
+                                journal contents, generate a new key
+                                pair for Forward Secure Sealing
+                                (FSS). This will generate a sealing
+                                key and a verification key. The
+                                sealing key is stored in the journal
+                                data directory and shall remain on the
+                                host. The verification key should be
+                                stored externally. Also see the
+                                <option>Seal=</option> option in
+                                <citerefentry><refentrytitle>journald.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>
+                                for details.</para></listitem>
+                        </varlistentry>
+
+                        <varlistentry>
+                                <term><option>--force</option></term>
+
+                                <listitem><para>When --setup-keys is passed and
+                                Forward Secure Sealing has already been set up,
+                                recreate FSS keys.</para></listitem>
+                        </varlistentry>
+
+                        <varlistentry>
+                                <term><option>--interval=</option></term>
+
+                                <listitem><para>Specifies the change
+                                interval for the sealing key when
+                                generating an FSS key pair with
+                                <option>--setup-keys</option>. Shorter
+                                intervals increase CPU consumption but
+                                shorten the time range of
+                                undetectable journal
+                                alterations. Defaults to
+                                15min.</para></listitem>
+                        </varlistentry>
+
+                        <varlistentry>
+                                <term><option>--verify</option></term>
+
+                                <listitem><para>Check the journal file
+                                for internal consistency. If the
+                                file has been generated with FSS
+                                enabled and the FSS verification key
+                                has been specified with
+                                <option>--verify-key=</option>,
+                                authenticity of the journal file is
+                                verified.</para></listitem>
+                        </varlistentry>
+
+                        <varlistentry>
+                                <term><option>--verify-key=</option></term>
+
+                                <listitem><para>Specifies the FSS
+                                verification key to use for the
+                                <option>--verify</option>
+                                operation.</para></listitem>
                         </varlistentry>
 
                 </variablelist>
         <refsect1>
                 <title>Exit status</title>
 
-                <para>On success 0 is returned, a non-zero failure
+                <para>On success, 0 is returned, a non-zero failure
                 code otherwise.</para>
         </refsect1>
 
         <refsect1>
                 <title>Environment</title>
 
-                <variablelist>
+                <variablelist class='environment-variables'>
                         <varlistentry>
                                 <term><varname>$SYSTEMD_PAGER</varname></term>
                                 <listitem><para>Pager to use when
         <refsect1>
                 <title>Examples</title>
 
-                <para>Without arguments all collected logs are shown
+                <para>Without arguments, all collected logs are shown
                 unfiltered:</para>
 
                 <programlisting>journalctl</programlisting>
 
-                <para>With one match specified all entries with a field matching the expression are shown:</para>
+                <para>With one match specified, all entries with a field matching the expression are shown:</para>
 
                 <programlisting>journalctl _SYSTEMD_UNIT=avahi-daemon.service</programlisting>
 
-                <para>If two different fields are matched only entries matching both expressions at the same time are shown:</para>
+                <para>If two different fields are matched, only entries matching both expressions at the same time are shown:</para>
 
                 <programlisting>journalctl _SYSTEMD_UNIT=avahi-daemon.service _PID=28097</programlisting>
 
-                <para>If two matches refer to the same field all entries matching either expression are shown:</para>
+                <para>If two matches refer to the same field, all entries matching either expression are shown:</para>
 
                 <programlisting>journalctl _SYSTEMD_UNIT=avahi-daemon.service _SYSTEMD_UNIT=dbus.service</programlisting>
 
-                <para>If the separator "<literal>+</literal>" is used
-                two expression may be combined in a logical OR. The
+                <para>If the separator <literal>+</literal> is used,
+                two expressions may be combined in a logical OR. The
                 following will show all messages from the Avahi
                 service process with the PID 28097 plus all messages
                 from the D-Bus service (from any of its
 
                 <programlisting>journalctl _SYSTEMD_UNIT=avahi-daemon.service _PID=28097 + _SYSTEMD_UNIT=dbus.service</programlisting>
 
+                <para>Show all logs generated by the D-Bus executable:</para>
+
+                <programlisting>journalctl /usr/bin/dbus-daemon</programlisting>
+
+                <para>Show all logs of the kernel device node <filename noindex='true'>/dev/sda</filename>:</para>
+
+                <programlisting>journalctl /dev/sda</programlisting>
+
+                <para>Show all kernel logs from last boot:</para>
+
+                <programlisting>journalctl -k -b :</programlisting>
+
         </refsect1>
 
         <refsect1>