]> git.ipfire.org Git - thirdparty/systemd.git/blob - man/journalctl.xml
journal: rework vacuuming logic
[thirdparty/systemd.git] / man / journalctl.xml
1 <?xml version='1.0'?> <!--*-nxml-*-->
2 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
3 "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
4
5 <!--
6 This file is part of systemd.
7
8 Copyright 2012 Lennart Poettering
9
10 systemd is free software; you can redistribute it and/or modify it
11 under the terms of the GNU Lesser General Public License as published by
12 the Free Software Foundation; either version 2.1 of the License, or
13 (at your option) any later version.
14
15 systemd is distributed in the hope that it will be useful, but
16 WITHOUT ANY WARRANTY; without even the implied warranty of
17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 Lesser General Public License for more details.
19
20 You should have received a copy of the GNU Lesser General Public License
21 along with systemd; If not, see <http://www.gnu.org/licenses/>.
22 -->
23
24 <refentry id="journalctl"
25 xmlns:xi="http://www.w3.org/2001/XInclude">
26
27 <refentryinfo>
28 <title>journalctl</title>
29 <productname>systemd</productname>
30
31 <authorgroup>
32 <author>
33 <contrib>Developer</contrib>
34 <firstname>Lennart</firstname>
35 <surname>Poettering</surname>
36 <email>lennart@poettering.net</email>
37 </author>
38 </authorgroup>
39 </refentryinfo>
40
41 <refmeta>
42 <refentrytitle>journalctl</refentrytitle>
43 <manvolnum>1</manvolnum>
44 </refmeta>
45
46 <refnamediv>
47 <refname>journalctl</refname>
48 <refpurpose>Query the systemd journal</refpurpose>
49 </refnamediv>
50
51 <refsynopsisdiv>
52 <cmdsynopsis>
53 <command>journalctl</command>
54 <arg choice="opt" rep="repeat">OPTIONS</arg>
55 <arg choice="opt" rep="repeat">MATCHES</arg>
56 </cmdsynopsis>
57 </refsynopsisdiv>
58
59 <refsect1>
60 <title>Description</title>
61
62 <para><command>journalctl</command> may be used to query the
63 contents of the
64 <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>
65 journal as written by
66 <citerefentry><refentrytitle>systemd-journald.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>.</para>
67
68 <para>If called without parameters, it will show the full
69 contents of the journal, starting with the oldest entry
70 collected.</para>
71
72 <para>If one or more match arguments are passed, the output is
73 filtered accordingly. A match is in the format
74 <literal>FIELD=VALUE</literal>,
75 e.g. <literal>_SYSTEMD_UNIT=httpd.service</literal>, referring
76 to the components of a structured journal entry. See
77 <citerefentry><refentrytitle>systemd.journal-fields</refentrytitle><manvolnum>7</manvolnum></citerefentry>
78 for a list of well-known fields. If multiple matches are
79 specified matching different fields, the log entries are
80 filtered by both, i.e. the resulting output will show only
81 entries matching all the specified matches of this kind. If two
82 matches apply to the same field, then they are automatically
83 matched as alternatives, i.e. the resulting output will show
84 entries matching any of the specified matches for the same
85 field. Finally, the character <literal>+</literal> may appears
86 as a separate word between other terms on the command line. This
87 causes all matches before and after to be combined in a
88 disjunction (i.e. logical OR).</para>
89
90 <para>As shortcuts for a few types of field/value matches, file
91 paths may be specified. If a file path refers to an executable
92 file, this is equivalent to an <literal>_EXE=</literal> match
93 for the canonicalized binary path. Similarly, if a path refers
94 to a device node, this is equivalent to a
95 <literal>_KERNEL_DEVICE=</literal> match for the device.</para>
96
97 <para>Additional constraints may be added using options
98 <option>--boot</option>, <option>--unit=</option>, etc, to
99 further limit what entries will be shown (logical AND).</para>
100
101 <para>Output is interleaved from all accessible journal files,
102 whether they are rotated or currently being written, and
103 regardless of whether they belong to the system itself or are
104 accessible user journals.</para>
105
106 <para>The set of journal files which will be used can be
107 modified using the <option>--user</option>,
108 <option>--system</option>, <option>--directory</option>, and
109 <option>--file</option> options, see below.</para>
110
111 <para>All users are granted access to their private per-user
112 journals. However, by default, only root and users who are
113 members of a few special groups are granted access to the system
114 journal and the journals of other users. Members of the groups
115 <literal>systemd-journal</literal>, <literal>adm</literal>, and
116 <literal>wheel</literal> can read all journal files. Note
117 that the two latter groups traditionally have additional
118 privileges specified by the distribution. Members of the
119 <literal>wheel</literal> group can often perform administrative
120 tasks.</para>
121
122 <para>The output is paged through <command>less</command> by
123 default, and long lines are "truncated" to screen width. The
124 hidden part can be viewed by using the left-arrow and
125 right-arrow keys. Paging can be disabled; see the
126 <option>--no-pager</option> option and the "Environment" section
127 below.</para>
128
129 <para>When outputting to a tty, lines are colored according to
130 priority: lines of level ERROR and higher are colored red; lines
131 of level NOTICE and higher are highlighted; other lines are
132 displayed normally.</para>
133 </refsect1>
134
135 <refsect1>
136 <title>Options</title>
137
138 <para>The following options are understood:</para>
139
140 <variablelist>
141 <varlistentry>
142 <term><option>--no-full</option></term>
143 <term><option>--full</option></term>
144 <term><option>-l</option></term>
145
146 <listitem><para>Ellipsize fields when they do not fit in
147 available columns. The default is to show full fields,
148 allowing them to wrap or be truncated by the pager, if one
149 is used.</para>
150
151 <para>The old options
152 <option>-l</option>/<option>--full</option> are not useful
153 anymore, except to undo <option>--no-full</option>.</para>
154 </listitem>
155 </varlistentry>
156
157 <varlistentry>
158 <term><option>-a</option></term>
159 <term><option>--all</option></term>
160
161 <listitem><para>Show all fields in full, even if they
162 include unprintable characters or are very
163 long.</para></listitem>
164 </varlistentry>
165
166 <varlistentry>
167 <term><option>-f</option></term>
168 <term><option>--follow</option></term>
169
170 <listitem><para>Show only the most recent journal entries,
171 and continuously print new entries as they are appended to
172 the journal.</para></listitem>
173 </varlistentry>
174
175 <varlistentry>
176 <term><option>-e</option></term>
177 <term><option>--pager-end</option></term>
178
179 <listitem><para>Immediately jump to the end of the journal
180 inside the implied pager tool. This implies
181 <option>-n1000</option> to guarantee that the pager will not
182 buffer logs of unbounded size. This may be overridden with
183 an explicit <option>-n</option> with some other numeric
184 value while <option>-nall</option> will disable this cap.
185 Note that this option is only supported for the
186 <citerefentry project='man-pages'><refentrytitle>less</refentrytitle><manvolnum>1</manvolnum></citerefentry>
187 pager.</para></listitem>
188 </varlistentry>
189
190 <varlistentry>
191 <term><option>-n</option></term>
192 <term><option>--lines=</option></term>
193
194 <listitem><para>Show the most recent journal events and
195 limit the number of events shown. If
196 <option>--follow</option> is used, this option is
197 implied. The argument is a positive integer or
198 <literal>all</literal> to disable line limiting. The default
199 value is 10 if no argument is given.</para></listitem>
200 </varlistentry>
201
202 <varlistentry>
203 <term><option>--no-tail</option></term>
204
205 <listitem><para>Show all stored output lines, even in follow
206 mode. Undoes the effect of <option>--lines=</option>.
207 </para></listitem>
208 </varlistentry>
209
210 <varlistentry>
211 <term><option>-r</option></term>
212 <term><option>--reverse</option></term>
213
214 <listitem><para>Reverse output so that the newest entries
215 are displayed first.</para></listitem>
216 </varlistentry>
217
218 <varlistentry>
219 <term><option>-o</option></term>
220 <term><option>--output=</option></term>
221
222 <listitem><para>Controls the formatting of the journal
223 entries that are shown. Takes one of the following
224 options:</para>
225 <variablelist>
226 <varlistentry>
227 <term>
228 <option>short</option>
229 </term>
230 <listitem>
231 <para>is the default and generates an output that is
232 mostly identical to the formatting of classic syslog
233 files, showing one line per journal entry.</para>
234 </listitem>
235 </varlistentry>
236
237 <varlistentry>
238 <term>
239 <option>short-iso</option>
240 </term>
241 <listitem>
242 <para>is very similar, but shows ISO 8601 wallclock
243 timestamps.</para>
244 </listitem>
245 </varlistentry>
246
247 <varlistentry>
248 <term>
249 <option>short-precise</option>
250 </term>
251 <listitem>
252 <para>is very similar, but shows timestamps with full
253 microsecond precision.</para>
254 </listitem>
255 </varlistentry>
256
257 <varlistentry>
258 <term>
259 <option>short-monotonic</option>
260 </term>
261 <listitem>
262 <para>is very similar, but shows monotonic timestamps
263 instead of wallclock timestamps.</para>
264 </listitem>
265 </varlistentry>
266
267 <varlistentry>
268 <term>
269 <option>verbose</option>
270 </term>
271 <listitem>
272 <para>shows the full-structured entry items with all
273 fields.</para>
274 </listitem>
275 </varlistentry>
276
277 <varlistentry>
278 <term>
279 <option>export</option>
280 </term>
281 <listitem>
282 <para>serializes the journal into a binary (but mostly
283 text-based) stream suitable for backups and network
284 transfer (see
285 <ulink url="http://www.freedesktop.org/wiki/Software/systemd/export">Journal Export Format</ulink>
286 for more information).</para>
287 </listitem>
288 </varlistentry>
289
290 <varlistentry>
291 <term>
292 <option>json</option>
293 </term>
294 <listitem>
295 <para>formats entries as JSON data structures, one per
296 line (see
297 <ulink url="http://www.freedesktop.org/wiki/Software/systemd/json">Journal JSON Format</ulink>
298 for more information).</para>
299 </listitem>
300 </varlistentry>
301
302 <varlistentry>
303 <term>
304 <option>json-pretty</option>
305 </term>
306 <listitem>
307 <para>formats entries as JSON data structures, but
308 formats them in multiple lines in order to make them
309 more readable by humans.</para>
310 </listitem>
311 </varlistentry>
312
313 <varlistentry>
314 <term>
315 <option>json-sse</option>
316 </term>
317 <listitem>
318 <para>formats entries as JSON data structures, but wraps
319 them in a format suitable for
320 <ulink url="https://developer.mozilla.org/en-US/docs/Server-sent_events/Using_server-sent_events">Server-Sent Events</ulink>.
321 </para>
322 </listitem>
323 </varlistentry>
324
325 <varlistentry>
326 <term>
327 <option>cat</option>
328 </term>
329 <listitem>
330 <para>generates a very terse output, only showing the
331 actual message of each journal entry with no metadata,
332 not even a timestamp.</para>
333 </listitem>
334 </varlistentry>
335 </variablelist>
336 </listitem>
337 </varlistentry>
338
339 <varlistentry>
340 <term><option>--utc</option></term>
341
342 <listitem><para>Express time in Coordinated Universal Time
343 (UTC).</para></listitem>
344 </varlistentry>
345
346 <varlistentry>
347 <term><option>-x</option></term>
348 <term><option>--catalog</option></term>
349
350 <listitem><para>Augment log lines with explanation texts from
351 the message catalog. This will add explanatory help texts to
352 log messages in the output where this is available. These
353 short help texts will explain the context of an error or log
354 event, possible solutions, as well as pointers to support
355 forums, developer documentation, and any other relevant
356 manuals. Note that help texts are not available for all
357 messages, but only for selected ones. For more information on
358 the message catalog, please refer to the
359 <ulink url="http://www.freedesktop.org/wiki/Software/systemd/catalog">Message Catalog Developer Documentation</ulink>.</para>
360
361 <para>Note: when attaching <command>journalctl</command>
362 output to bug reports, please do <emphasis>not</emphasis> use
363 <option>-x</option>.</para>
364 </listitem>
365 </varlistentry>
366
367 <varlistentry>
368 <term><option>-q</option></term>
369 <term><option>--quiet</option></term>
370
371 <listitem><para>Suppresses any warning messages regarding
372 inaccessible system journals when run as a normal
373 user.</para></listitem>
374 </varlistentry>
375
376 <varlistentry>
377 <term><option>-m</option></term>
378 <term><option>--merge</option></term>
379
380 <listitem><para>Show entries interleaved from all available
381 journals, including remote ones.</para></listitem>
382 </varlistentry>
383
384 <varlistentry>
385 <term><option>-b <optional><replaceable>ID</replaceable></optional><optional><replaceable>±offset</replaceable></optional></option></term>
386 <term><option>--boot=<optional><replaceable>ID</replaceable></optional><optional><replaceable>±offset</replaceable></optional></option></term>
387
388 <listitem><para>Show messages from a specific boot. This will
389 add a match for <literal>_BOOT_ID=</literal>.</para>
390
391 <para>The argument may be empty, in which case logs for the
392 current boot will be shown.</para>
393
394 <para>If the boot ID is omitted, a positive
395 <replaceable>offset</replaceable> will look up the boots
396 starting from the beginning of the journal, and a
397 equal-or-less-than zero <replaceable>offset</replaceable> will
398 look up boots starting from the end of the journal. Thus,
399 <constant>1</constant> means the first boot found in the
400 journal in chronological order, <constant>2</constant> the
401 second and so on; while <constant>-0</constant> is the last
402 boot, <constant>-1</constant> the boot before last, and so
403 on. An empty <replaceable>offset</replaceable> is equivalent
404 to specifying <constant>-0</constant>, except when the current
405 boot is not the last boot (e.g. because
406 <option>--directory</option> was specified to look at logs
407 from a different machine).</para>
408
409 <para>If the 32-character <replaceable>ID</replaceable> is
410 specified, it may optionally be followed by
411 <replaceable>offset</replaceable> which identifies the boot
412 relative to the one given by boot
413 <replaceable>ID</replaceable>. Negative values mean earlier
414 boots and a positive values mean later boots. If
415 <replaceable>offset</replaceable> is not specified, a value of
416 zero is assumed, and the logs for the boot given by
417 <replaceable>ID</replaceable> are shown.</para>
418 </listitem>
419 </varlistentry>
420
421 <varlistentry>
422 <term><option>--list-boots</option></term>
423
424 <listitem><para>Show a tabular list of boot numbers (relative to
425 the current boot), their IDs, and the timestamps of the first
426 and last message pertaining to the boot.</para></listitem>
427 </varlistentry>
428
429 <varlistentry>
430 <term><option>-k</option></term>
431 <term><option>--dmesg</option></term>
432
433 <listitem><para>Show only kernel messages. This implies
434 <option>-b</option> and adds the match
435 <literal>_TRANSPORT=kernel</literal>.</para></listitem>
436 </varlistentry>
437
438 <varlistentry>
439 <term><option>-t</option></term>
440 <term><option>--identifier=<replaceable>SYSLOG_IDENTIFIER</replaceable>|<replaceable>PATTERN</replaceable></option></term>
441
442 <listitem><para>Show messages for the specified syslog
443 identifier <replaceable>SYSLOG_IDENTIFIER</replaceable>, or
444 for any of the messages with a
445 <literal>SYSLOG_IDENTIFIER</literal> matched by
446 <replaceable>PATTERN</replaceable>.</para>
447
448 <para>This parameter can be specified multiple
449 times.</para></listitem>
450 </varlistentry>
451
452 <varlistentry>
453 <term><option>-u</option></term>
454 <term><option>--unit=<replaceable>UNIT</replaceable>|<replaceable>PATTERN</replaceable></option></term>
455
456 <listitem><para>Show messages for the specified systemd unit
457 <replaceable>UNIT</replaceable> (such as a service unit), or
458 for any of the units matched by
459 <replaceable>PATTERN</replaceable>. If a pattern is
460 specified, a list of unit names found in the journal is
461 compared with the specified pattern and all that match are
462 used. For each unit name, a match is added for messages from
463 the unit
464 (<literal>_SYSTEMD_UNIT=<replaceable>UNIT</replaceable></literal>),
465 along with additional matches for messages from systemd and
466 messages about coredumps for the specified unit.</para>
467
468 <para>This parameter can be specified multiple times.</para>
469 </listitem>
470 </varlistentry>
471
472 <varlistentry>
473 <term><option>--user-unit=</option></term>
474
475 <listitem><para>Show messages for the specified user session
476 unit. This will add a match for messages from the unit
477 (<literal>_SYSTEMD_USER_UNIT=</literal> and
478 <literal>_UID=</literal>) and additional matches for messages
479 from session systemd and messages about coredumps for the
480 specified unit.</para>
481
482 <para>This parameter can be specified multiple times.</para>
483 </listitem>
484 </varlistentry>
485
486 <varlistentry>
487 <term><option>-p</option></term>
488 <term><option>--priority=</option></term>
489
490 <listitem><para>Filter output by message priorities or
491 priority ranges. Takes either a single numeric or textual log
492 level (i.e. between 0/<literal>emerg</literal> and
493 7/<literal>debug</literal>), or a range of numeric/text log
494 levels in the form FROM..TO. The log levels are the usual
495 syslog log levels as documented in
496 <citerefentry project='man-pages'><refentrytitle>syslog</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
497 i.e. <literal>emerg</literal> (0),
498 <literal>alert</literal> (1), <literal>crit</literal> (2),
499 <literal>err</literal> (3), <literal>warning</literal> (4),
500 <literal>notice</literal> (5), <literal>info</literal> (6),
501 <literal>debug</literal> (7). If a single log level is
502 specified, all messages with this log level or a lower (hence
503 more important) log level are shown. If a range is specified,
504 all messages within the range are shown, including both the
505 start and the end value of the range. This will add
506 <literal>PRIORITY=</literal> matches for the specified
507 priorities.</para></listitem>
508 </varlistentry>
509
510 <varlistentry>
511 <term><option>-c</option></term>
512 <term><option>--cursor=</option></term>
513
514 <listitem><para>Start showing entries from the location in the
515 journal specified by the passed cursor.</para></listitem>
516 </varlistentry>
517
518 <varlistentry>
519 <term><option>--after-cursor=</option></term>
520
521 <listitem><para>Start showing entries from the location in the
522 journal <emphasis>after</emphasis> the location specified by
523 the this cursor. The cursor is shown when the
524 <option>--show-cursor</option> option is used.</para>
525 </listitem>
526 </varlistentry>
527
528 <varlistentry>
529 <term><option>--show-cursor</option></term>
530
531 <listitem><para>The cursor is shown after the last entry after
532 two dashes:</para>
533 <programlisting>-- cursor: s=0639...</programlisting>
534 <para>The format of the cursor is private
535 and subject to change.</para></listitem>
536 </varlistentry>
537
538 <varlistentry>
539 <term><option>--since=</option></term>
540 <term><option>--until=</option></term>
541
542 <listitem><para>Start showing entries on or newer than the
543 specified date, or on or older than the specified date,
544 respectively. Date specifications should be of the format
545 <literal>2012-10-30 18:17:16</literal>. If the time part is
546 omitted, <literal>00:00:00</literal> is assumed. If only the
547 seconds component is omitted, <literal>:00</literal> is
548 assumed. If the date component is omitted, the current day is
549 assumed. Alternatively the strings
550 <literal>yesterday</literal>, <literal>today</literal>,
551 <literal>tomorrow</literal> are understood, which refer to
552 00:00:00 of the day before the current day, the current day,
553 or the day after the current day,
554 respectively. <literal>now</literal> refers to the current
555 time. Finally, relative times may be specified, prefixed with
556 <literal>-</literal> or <literal>+</literal>, referring to
557 times before or after the current time, respectively.</para>
558 </listitem>
559 </varlistentry>
560
561 <varlistentry>
562 <term><option>-F</option></term>
563 <term><option>--field=</option></term>
564
565 <listitem><para>Print all possible data values the specified
566 field can take in all entries of the journal.</para></listitem>
567 </varlistentry>
568
569 <varlistentry>
570 <term><option>--system</option></term>
571 <term><option>--user</option></term>
572
573 <listitem><para>Show messages from system services and the
574 kernel (with <option>--system</option>). Show messages from
575 service of current user (with <option>--user</option>). If
576 neither is specified, show all messages that the user can see.
577 </para></listitem>
578 </varlistentry>
579
580 <varlistentry>
581 <term><option>-M</option></term>
582 <term><option>--machine=</option></term>
583
584 <listitem><para>Show messages from a running, local
585 container. Specify a container name to connect to.</para>
586 </listitem>
587 </varlistentry>
588
589 <varlistentry>
590 <term><option>-D <replaceable>DIR</replaceable></option></term>
591 <term><option>--directory=<replaceable>DIR</replaceable></option></term>
592
593 <listitem><para>Takes a directory path as argument. If
594 specified, journalctl will operate on the specified journal
595 directory <replaceable>DIR</replaceable> instead of the
596 default runtime and system journal paths.</para></listitem>
597 </varlistentry>
598
599 <varlistentry>
600 <term><option>--file=<replaceable>GLOB</replaceable></option></term>
601
602 <listitem><para>Takes a file glob as an argument. If
603 specified, journalctl will operate on the specified journal
604 files matching <replaceable>GLOB</replaceable> instead of the
605 default runtime and system journal paths. May be specified
606 multiple times, in which case files will be suitably
607 interleaved.</para></listitem>
608 </varlistentry>
609
610 <varlistentry>
611 <term><option>--root=<replaceable>ROOT</replaceable></option></term>
612
613 <listitem><para>Takes a directory path as an argument. If
614 specified, journalctl will operate on catalog file hierarchy
615 underneath the specified directory instead of the root
616 directory (e.g. <option>--update-catalog</option> will create
617 <filename><replaceable>ROOT</replaceable>/var/lib/systemd/catalog/database</filename>).
618 </para></listitem>
619 </varlistentry>
620
621 <varlistentry>
622 <term><option>--new-id128</option></term>
623
624 <listitem><para>Instead of showing journal contents, generate
625 a new 128-bit ID suitable for identifying messages. This is
626 intended for usage by developers who need a new identifier for
627 a new message they introduce and want to make
628 recognizable. This will print the new ID in three different
629 formats which can be copied into source code or similar.
630 </para></listitem>
631 </varlistentry>
632
633 <varlistentry>
634 <term><option>--header</option></term>
635
636 <listitem><para>Instead of showing journal contents, show
637 internal header information of the journal fields
638 accessed.</para></listitem>
639 </varlistentry>
640
641 <varlistentry>
642 <term><option>--disk-usage</option></term>
643
644 <listitem><para>Shows the current disk usage of all journal
645 files. This shows the sum of the disk usage of all archived
646 and active journal files.</para></listitem>
647 </varlistentry>
648
649 <varlistentry>
650 <term><option>--vacuum-size=</option></term>
651 <term><option>--vacuum-time=</option></term>
652 <term><option>--vacuum-files=</option></term>
653
654 <listitem><para>Removes archived journal files until the disk
655 space they use falls below the specified size (specified with
656 the usual <literal>K</literal>, <literal>M</literal>,
657 <literal>G</literal>, <literal>T</literal> suffixes), or all
658 journal files contain no data older than the specified
659 timespan (specified with the usual <literal>s</literal>,
660 <literal>min</literal>, <literal>h</literal>,
661 <literal>days</literal>, <literal>months</literal>,
662 <literal>weeks</literal>, <literal>years</literal> suffixes),
663 or no more than the specified number of separate journal files
664 remain. Note that running <option>--vacuum-size=</option> has
665 only indirect effect on the output shown by
666 <option>--disk-usage</option> as the latter includes active
667 journal files, while the the vacuuming operation only operates
668 on archived journal files. Similar,
669 <option>--vacuum-files=</option> might not actually reduce the
670 number of journal files to below the specified number, as it
671 will not remove active journal
672 files. <option>--vacuum-size=</option>,
673 <option>--vacuum-time=</option> and
674 <option>--vacuum-files=</option> may be combined in a single
675 invocation to enforce any combination of a size, a time and a
676 number of files limit on the archived journal
677 files. Specifying any of these three parameters as zero is
678 equivalent to not enforcing the specific limit, and is thus
679 redundant.</para></listitem>
680 </varlistentry>
681
682 <varlistentry>
683 <term><option>--list-catalog
684 <optional><replaceable>128-bit-ID...</replaceable></optional>
685 </option></term>
686
687 <listitem><para>List the contents of the message catalog as a
688 table of message IDs, plus their short description strings.
689 </para>
690
691 <para>If any <replaceable>128-bit-ID</replaceable>s are
692 specified, only those entries are shown.</para>
693 </listitem>
694 </varlistentry>
695
696 <varlistentry>
697 <term><option>--dump-catalog
698 <optional><replaceable>128-bit-ID...</replaceable></optional>
699 </option></term>
700
701 <listitem><para>Show the contents of the message catalog, with
702 entries separated by a line consisting of two dashes and the
703 ID (the format is the same as <filename>.catalog</filename>
704 files).</para>
705
706 <para>If any <replaceable>128-bit-ID</replaceable>s are
707 specified, only those entries are shown.</para>
708 </listitem>
709 </varlistentry>
710
711 <varlistentry>
712 <term><option>--update-catalog</option></term>
713
714 <listitem><para>Update the message catalog index. This command
715 needs to be executed each time new catalog files are
716 installed, removed, or updated to rebuild the binary catalog
717 index.</para></listitem>
718 </varlistentry>
719
720 <varlistentry>
721 <term><option>--setup-keys</option></term>
722
723 <listitem><para>Instead of showing journal contents, generate
724 a new key pair for Forward Secure Sealing (FSS). This will
725 generate a sealing key and a verification key. The sealing key
726 is stored in the journal data directory and shall remain on
727 the host. The verification key should be stored
728 externally. Refer to the <option>Seal=</option> option in
729 <citerefentry><refentrytitle>journald.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>
730 for information on Forward Secure Sealing and for a link to a
731 refereed scholarly paper detailing the cryptographic theory it
732 is based on.</para></listitem>
733 </varlistentry>
734
735 <varlistentry>
736 <term><option>--force</option></term>
737
738 <listitem><para>When <option>--setup-keys</option> is passed
739 and Forward Secure Sealing (FSS) has already been configured,
740 recreate FSS keys.</para></listitem>
741 </varlistentry>
742
743 <varlistentry>
744 <term><option>--interval=</option></term>
745
746 <listitem><para>Specifies the change interval for the sealing
747 key when generating an FSS key pair with
748 <option>--setup-keys</option>. Shorter intervals increase CPU
749 consumption but shorten the time range of undetectable journal
750 alterations. Defaults to 15min.</para></listitem>
751 </varlistentry>
752
753 <varlistentry>
754 <term><option>--verify</option></term>
755
756 <listitem><para>Check the journal file for internal
757 consistency. If the file has been generated with FSS enabled and
758 the FSS verification key has been specified with
759 <option>--verify-key=</option>, authenticity of the journal file
760 is verified.</para></listitem>
761 </varlistentry>
762
763 <varlistentry>
764 <term><option>--verify-key=</option></term>
765
766 <listitem><para>Specifies the FSS verification key to use for
767 the <option>--verify</option> operation.</para></listitem>
768 </varlistentry>
769
770 <varlistentry>
771 <term><option>--flush</option></term>
772
773 <listitem><para>Asks the Journal daemon to flush any log data
774 stored in <filename>/run/log/journal</filename> into
775 <filename>/var/log/journal</filename>, if persistent storage is
776 enabled. This call does not return until the operation is
777 complete.</para></listitem>
778 </varlistentry>
779
780 <varlistentry>
781 <term><option>--rotate</option></term>
782
783 <listitem><para>Asks the Journal daemon to rotate journal files.
784 </para></listitem>
785 </varlistentry>
786 <xi:include href="standard-options.xml" xpointer="help" />
787 <xi:include href="standard-options.xml" xpointer="version" />
788 <xi:include href="standard-options.xml" xpointer="no-pager" />
789 </variablelist>
790 </refsect1>
791
792 <refsect1>
793 <title>Exit status</title>
794
795 <para>On success, 0 is returned; otherwise, a non-zero failure
796 code is returned.</para>
797 </refsect1>
798
799 <xi:include href="less-variables.xml" />
800
801 <refsect1>
802 <title>Examples</title>
803
804 <para>Without arguments, all collected logs are shown
805 unfiltered:</para>
806
807 <programlisting>journalctl</programlisting>
808
809 <para>With one match specified, all entries with a field matching
810 the expression are shown:</para>
811
812 <programlisting>journalctl _SYSTEMD_UNIT=avahi-daemon.service</programlisting>
813
814 <para>If two different fields are matched, only entries matching
815 both expressions at the same time are shown:</para>
816
817 <programlisting>journalctl _SYSTEMD_UNIT=avahi-daemon.service _PID=28097</programlisting>
818
819 <para>If two matches refer to the same field, all entries matching
820 either expression are shown:</para>
821
822 <programlisting>journalctl _SYSTEMD_UNIT=avahi-daemon.service _SYSTEMD_UNIT=dbus.service</programlisting>
823
824 <para>If the separator <literal>+</literal> is used, two
825 expressions may be combined in a logical OR. The following will
826 show all messages from the Avahi service process with the PID
827 28097 plus all messages from the D-Bus service (from any of its
828 processes):</para>
829
830 <programlisting>journalctl _SYSTEMD_UNIT=avahi-daemon.service _PID=28097 + _SYSTEMD_UNIT=dbus.service</programlisting>
831
832 <para>Show all logs generated by the D-Bus executable:</para>
833
834 <programlisting>journalctl /usr/bin/dbus-daemon</programlisting>
835
836 <para>Show all kernel logs from previous boot:</para>
837
838 <programlisting>journalctl -k -b -1</programlisting>
839
840 <para>Show a live log display from a system service
841 <filename>apache.service</filename>:</para>
842
843 <programlisting>journalctl -f -u apache</programlisting>
844
845 </refsect1>
846
847 <refsect1>
848 <title>See Also</title>
849 <para>
850 <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
851 <citerefentry><refentrytitle>systemd-journald.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
852 <citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
853 <citerefentry><refentrytitle>coredumpctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
854 <citerefentry><refentrytitle>systemd.journal-fields</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
855 <citerefentry><refentrytitle>journald.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>
856 </para>
857 </refsect1>
858 </refentry>