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