.\" Copyright 1993 Rickard E. Faith (faith@cs.unc.edu)
.\" May be distributed under the GNU General Public License
.TH DMESG "1" "July 2012" "util-linux" "User Commands"
.SH NAME
dmesg \- print or control the kernel ring buffer
.SH SYNOPSIS
.B dmesg
[options]
.sp
.B dmesg \-\-clear
.br
.BR "dmesg \-\-read\-clear " [options]
.br
.BI "dmesg \-\-console\-level " level
.br
.B dmesg \-\-console\-on
.br
.B dmesg \-\-console\-off
.SH DESCRIPTION
.B dmesg
is used to examine or control the kernel ring buffer.
.PP
The default action is to display all messages from the kernel ring buffer.
.SH OPTIONS
The
.BR \-\-clear ,
.BR \-\-read\-clear ,
.BR \-\-console\-on ,
.BR \-\-console\-off ,
and
.B \-\-console\-level
options are mutually exclusive.
.PP
.IP "\fB\-C\fR, \fB\-\-clear\fR"
Clear the ring buffer.
.IP "\fB\-c\fR, \fB\-\-read\-clear\fR"
Clear the ring buffer after first printing its contents.
.IP "\fB\-D\fR, \fB\-\-console\-off\fR"
Disable the printing of messages to the console.
.IP "\fB\-d\fR, \fB\-\-show\-delta\fR"
Display the timestamp and the time delta spent between messages.  If used
together with
.B \-\-notime
then only the time delta without the timestamp is printed.
.IP "\fB\-E\fR, \fB\-\-console\-on\fR"
Enable printing messages to the console.
.IP "\fB\-e\fR, \fB\-\-reltime\fR"
Display the local time and the delta in human-readable format.  Be aware that
conversion to the local time could be inaccurate (see \fB\-T\fR for more
details).
.IP "\fB\-F\fR, \fB\-\-file \fIfile\fR"
Read the syslog messages from the given
.IR file .
Note that \fB\-F\fR does not support messages in kmsg format. The old syslog format is supported only.
.IP "\fB\-f\fR, \fB\-\-facility \fIlist\fR"
Restrict output to the given (comma-separated)
.I list
of facilities.  For example:
.PP
.RS 14
.B dmesg \-\-facility=daemon
.RE
.IP
will print messages from system daemons only.  For all supported facilities
see the
.B \-\-help
output.
.IP "\fB\-H\fR, \fB\-\-human\fR"
Enable human-readable output.  See also \fB\-\-color\fR, \fB\-\-reltime\fR
and \fB\-\-nopager\fR.
.IP "\fB\-k\fR, \fB\-\-kernel\fR"
Print kernel messages.
.IP "\fB\-L\fR, \fB\-\-color\fR[=\fIwhen\fR]"
Colorize the output.  The optional argument \fIwhen\fP
can be \fBauto\fR, \fBnever\fR or \fBalways\fR.  If the \fIwhen\fR argument is omitted,
it defaults to \fBauto\fR.  The colors can be disabled; for the current built-in default
see the \fB\-\-help\fR output.  See also the \fBCOLORS\fR section below.
.IP  "\fB\-l\fR, \fB\-\-level \fIlist\fR"
Restrict output to the given (comma-separated)
.I list
of levels.  For example:
.PP
.RS 14
.B dmesg \-\-level=err,warn
.RE
.IP
will print error and warning messages only.  For all supported levels see the
.B \-\-help
output.
.IP "\fB\-n\fR, \fB\-\-console\-level \fIlevel\fR
Set the
.I level
at which printing of messages is done to the console.  The
.I level
is a level number or abbreviation of the level name.  For all supported
levels see the
.B \-\-help
output.
.sp
For example,
.B \-n 1
or
.B \-n alert
prevents all messages, except emergency (panic) messages, from appearing on
the console.  All levels of messages are still written to
.IR /proc/kmsg ,
so
.BR syslogd (8)
can still be used to control exactly where kernel messages appear.  When the
.B \-n
option is used,
.B dmesg
will
.I not
print or clear the kernel ring buffer.
.IP "\fB\-P\fR, \fB\-\-nopager\fR"
Do not pipe output into a pager.  A pager is enabled by default for \fB\-\-human\fR output.
.IP "\fB\-p\fR, \fB\-\-force\-prefix\fR"
Add facility, level or timestamp information to each line of a multi-line message.
.IP "\fB\-r\fR, \fB\-\-raw\fR"
Print the raw message buffer, i.e. do not strip the log-level prefixes.

Note that the real raw format depends on the method how
.BR dmesg (1)
reads kernel messages.  The /dev/kmsg device uses a different format than
.BR syslog (2).
For backward compatibility,
.BR dmesg (1)
returns data always in the
.BR syslog (2)
format.  It is possible to read the real raw data from /dev/kmsg by, for example,
the command 'dd if=/dev/kmsg iflag=nonblock'.
.IP "\fB\-S\fR, \fB\-\-syslog\fR"
Force \fBdmesg\fR to use the
.BR syslog (2)
kernel interface to read kernel messages.  The default is to use /dev/kmsg rather
than
.BR syslog (2)
since kernel 3.5.0.
.IP "\fB\-s\fR, \fB\-\-buffer\-size \fIsize\fR
Use a buffer of
.I size
to query the kernel ring buffer.  This is 16392 by default.  (The default
kernel syslog buffer size was 4096 at first, 8192 since 1.3.54, 16384 since
2.1.113.)  If you have set the kernel buffer to be larger than the default,
then this option can be used to view the entire buffer.
.IP "\fB\-T\fR, \fB\-\-ctime\fR"
Print human-readable timestamps.
.IP
.B Be aware that the timestamp could be inaccurate!
The
.B time
source used for the logs is
.B not updated after
system
.BR SUSPEND / RESUME .
.IP "\fB\-t\fR, \fB\-\-notime\fR"
Do not print kernel's timestamps.
.IP "\fB\-\-time\-format\fR \fIformat\fR"
Print timestamps using the given \fIformat\fR, which can be
.BR ctime ,
.BR reltime ,
.B delta
or
.BR iso .
The first three formats are aliases of the time-format-specific options.
The
.B iso
format is a
.B dmesg
implementation of the ISO-8601 timestamp format.  The purpose of this format is
to make the comparing of timestamps between two systems, and any other parsing,
easy.  The definition of the \fBiso\fR timestamp is:
YYYY-MM-DD<T>HH:MM:SS,<microseconds><-+><timezone offset from UTC>.
.IP
The
.B iso
format has the same issue as
.BR ctime :
the time may be inaccurate when a system is suspended and resumed.
.TP
.BR \-u , " \-\-userspace"
Print userspace messages.
.TP
.BR \-w , " \-\-follow"
Wait for new messages.  This feature is supported only on systems with
a readable /dev/kmsg (since kernel 3.5.0).
.TP
.BR \-x , " \-\-decode"
Decode facility and level (priority) numbers to human-readable prefixes.
.TP
.BR \-V , " \-\-version"
Display version information and exit.
.TP
.BR \-h , " \-\-help"
Display help text and exit.
.SH COLORS
Implicit coloring can be disabled by an empty file \fI/etc/terminal-colors.d/dmesg.disable\fR.
See
.BR terminal-colors.d (5)
for more details about colorization configuration.
.PP
The logical color names supported by
.B dmesg
are:
.TP
.B subsys
The message sub-system prefix (e.g. "ACPI:").
.TP
.B time
The message timestamp.
.TP
.B timebreak
The message timestamp in short ctime format in \fB\-\-reltime\fR 
or \fB\-\-human\fR output.
.TP
.B alert
The text of the message with the alert log priority.
.TP
.B crit
The text of the message with the critical log priority.
.TP
.B err
The text of the message with the error log priority.
.TP
.B warn
The text of the message with the warning log priority.
.TP
.B segfault
The text of the message that inform about segmentation fault.
.SH EXIT STATUS
.B dmesg
can fail reporting permission denied error.  This is usually caused by
.B dmesg_restrict
kernel setting, please see
.BR syslog (2)
for more details.
.SH SEE ALSO
.BR terminal-colors.d (5),
.BR syslogd (8)
.SH AUTHORS
.MT kzak@redhat.com
Karel Zak
.ME

.br
.B dmesg
was originally written by
.MT tytso@athena.mit.edu
Theodore Ts'o
.ME
.SH AVAILABILITY
The dmesg command is part of the util-linux package and is available from
.UR https://\:www.kernel.org\:/pub\:/linux\:/utils\:/util-linux/
Linux Kernel Archive
.UE .
