如何通过调整Debian系统dmesg日志级别高效追踪和定位复杂系统故障?

更新于
2026-09-29 03:11:50
3阅读来源:SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐
其实,

如何通过调整Debian程序dmesg日志级别高效追踪和定位复杂程序故障?

在Linux程序中,~dmesg~命令用于显示内核启动信息和运行时状态的命令。通过分析dmesg日志,可以帮助我们定位Debian程序中的问题。

如何通过调整Debian系统dmesg日志级别高效追踪和定位复杂系统故障?

步骤1:查看dmesg日志

打开终端,输入以下命令来查看dmesg日志:

dmesg

如果你想查看特定级别的日志,可以使用-l选项指定日志级别。例如:

dmesg -l err

步骤2:筛选关键信息

使用grep命令来筛选出包含关键字的信息:

如何通过调整Debian系统dmesg日志级别高效追踪和定位复杂系统故障?
dmesg | grep error

步骤3:分析dmesg日志

通过分析dmesg日志,可以帮助我们定位Debian程序中的问题。再看例如,

  • 硬件故障或驱动程序问题;
  • 内存或硬盘空间不足;
  • 网络连接异常等。不过,

调整dmesg日志级别

说到方法一,使用sysctl命令调整日志级别

sudo sysctl -w kernel.printk= 3 4 1 3

从方法二来看。编辑GRUB配置文件调整日志级别

编辑/etc/default/grub文件,找到GRUBCMDLINELINUX_DEFAULT行,并添加或修改loglevel参数。

例如的观点是,

GRUB_CMDLINE_LINUX_DEFAULT= quiet loglevel=3

dmesg与journalctl的区别与选择原则

  • journald是systemd提供的一个服务。负责收集并存储程序的所有消息,这些消息都被称为“事件”;而dmesg是 Linux 内核直接将其写入内存缓冲区中的内容,这些内容都被称为“消息”。不过,
  • journald会根据事件类型进行分类和优先级处理。而 d mes g 是按照时间顺序排列的。
  • journald会自动清除旧事件,而 d mes g 会一直保留。
  • journalc t l 可以通过 journalctl -f 命令实时监控 journald 中的事件,而 d mes g 是不支持实时监控的。
  • journald 可以提供更高级的过滤和查询功能,而 d mes g 的过滤能力较弱。
  • journald 默认情况下不会写入 /var/log/d mes g,而是写入 /run/systemd/journal/。
  • journald 支持多个分区。也支持多个 journal 目录,每个目录对应一个 journal 分区。其实,这个代表着如果你的程序有多个 boot 分区或者 root 分区。那么它们各自都会有自己的 journal 目录。你可以在每个 journal 目录下单独管理他们自己的 journal 日志文件。这对那些需要同时管理多个分区上的 journal 日志文件的人来说是一个很大的好处。journald 不支持在同一个分区上共享多个 journal 目录。 对了这种设置可能会导致一些错误,因为每个分区都有自己的journal daemon进程。 它们之间可能会竞争资源或者干扰彼此。 这代表着如果你需要在同一分区上共享多个journal 目录。那么最好不要这样做,因为这样可能会导致一些问题或者困难。话说回来,journald 提供了几个选项来控制它如何处理不同的事件类型。它们分别是: - -r:reverse:反转排序顺序,而且显示最晚的记录 ;- -n:number:仅显示最终n条记录,而且不再追加新的记录到屏幕上;当没有参数时表示显示100条记录。如果想要显示更多记录,则可以增加该数字。- -u:unit:只显示unit相关信息;比如: - -s:show-system-id:显式打印 system-id 的值,以便后续使用这个 ID 来找出特定的 log entry。- -c --current:当前显示当前正在处理哪些操作。- -m --merge:合并log entries。- -q --quiet --no-pager:抑制 pager 显示结果。不让结果输出到屏幕上,直接输出到终端后台中去。- --no-hostname --no-priority --no-pid — no-cuts — no-numeric-timestamps — no-unixtimestamp — no-microseconds — no-monotonic — monotonic-timestamps – wall-clock-time – show-system-id – show-realtime-timestamps – wall-clock-time-timestamps.;
    1. journalc t l -r :逆序打印 log entries,最新的 log entry 在最前面;journalc t l -n :仅打印最终 n 条 log entries,不追加新的记录;老实说,journalc t l -u :只打印 unit 相关信息;其实,journalc t l -m :合并 log entries。journalc t l -q :抑制 pager 显示结果。不让结果输出到屏幕上,直接输出到终端后台中去。其他可用选项包括:-c、--current 、--merge、--quiet 和 --no-pager 等 这些选项主要用于控制 jurnalc tl 的行为。如: journcaltl --reverse 或 journcaltl --newest-first,两者都是翻转排序顺序,而且将最新最新的记录放置在最前面。journcaltl --last 或 journcaltl --latest,表示仅从log缓冲里读取最终一条记录,并不再追加新的数据至屏幕. journcaltl -f 或 journcaltl --follow,实现实时监视功能,当你启动这个选项后只要有新数据产生,就会自动追加到屏幕上. journcaltl-norotate或jourcnclt-noautosync,这两个都是关闭JornalD自动旋转功能,这样一来你就不能够像以前那样直接从/var/log/journal/xx目录里找到你想要查找到的那一天/小时/分钟创建出来的问题了. JournalCtL--r 或 JournalCtL--reverse,翻转排序顺序,将最新生成出来的问题放在最顶部. journalctL-nouTput、JournalCTL-numnum即可代表最大生成出来的问题数量,只能获取最终num条生成出来的问题,最常用的就是nouTput _.50. journalctL-quiet、JournalCTL-qui、 JournalCtl-silent 、journalctl-silence 都具有相同作用,可以静默模式执行-journalctL-JournalCTL _qui-te,无论何种方式执行,只要选择这几个参数后。journalctLJounralCTLqui-te就会使得jurnalctLJounralctlquite执行成静默模式了. journalctLq QUI TE QUITQUIQUITE _QUIQUITQQTEQIQTEQ-Q.Q.TE-Q .Q.Q.Q.Q.Q.q.Q.qq.teqte.Q.TET.Q.TEQTE QETE QQ TE Q Q q T QE QQ QE QE QQ QE QQ qQQ Q TE QE TE QQ qq qq qqqqqqqqqqqqQQQQQQQQQE QE QTQQTQTQTQQTQE QEQE EQ EQUEEEEQEQEEEEEEEEEQQQQQQQQQEQTTEEEEETEQTE ETETEEETEEEETEQQEQEQE EEEEEEEEEEQUUUUUEEEEEEEEEEEQEQEEEEEEETETEEEEEEETEIREEEEEQUUUUUUEEEEEEE ET EQ E ET E TT ET TTT T TTTTTTTT TTTT EE EE EE EE TT TTTTTT TTT TT TT TT TT TT TT EE EE ET ET ET T TE ET E E EE Q EQE EOEOEOOEOEOO EO O O O OE OE OE OE OOE OE OOE OOO EO EO OE EO OO EO EO OOEOOE OO OE EEGGGOEOEGGG GO GO GO GG GOGOGOGG GO OG EG G GGGG GG GG OG EG EG GG GGGOEGGGOOGEGGEGGGOEGGGOGOEGGOEGG GO EG GG GG GG GO GGOGG GGEEO GE GE GE GE GE GGE GE GEO GEO GEO GEO GE OG OG OG EGGEOGGE GEOGGE GO GGGGGOOOOOOOOOOOOEIOIGOOEIIOEIIGIIEEIIOOIIGIIEGIIEIIIIIIIIIIGIIEIIEIOGIIOIGI I IO I IG I GI I GI IO IG I GI IG II III III III III IIIIII IIIIIIII IIIIIIIIII I II II II II IIIIII IIIIIIIIII I I II II II II IICICICIICICIICIICICIICICCI CCCCCCCCCCCCCCCCCCCC CCCC CCCC CCCC CCC CCC CCC CCC CC CC CC CCC CCC CC CCCCCCC CCCCCCC CCCCCCC CCCCCCC CSCCSCSCSC SCC SCC SCC SCS SCS SCS CSCS CCS CCS CCS CCS CSC SSC SSC SSC SSC SCS CS CS CS CS CSC SC SC SC SC SS SS SS SSC SSC SSC SSC SS CSCSSCSCSSCSSSSCSSCSSS CSSSSCSSSSCSSCSSCCSSCCSSCCSSCSSCCS CSSSCSSCSSCCS CSSS SCCS SCCS SCCS SCCS CSSSCCSSCC CSSCSSCSC.CSS.SCSS.S.CSS.S.CSS.C.S.CSS.C.S.CSS.C.S.C.S.CSS.

。

标签:Debian
其实,

如何通过调整Debian程序dmesg日志级别高效追踪和定位复杂程序故障?

在Linux程序中,~dmesg~命令用于显示内核启动信息和运行时状态的命令。通过分析dmesg日志,可以帮助我们定位Debian程序中的问题。

如何通过调整Debian系统dmesg日志级别高效追踪和定位复杂系统故障?

步骤1:查看dmesg日志

打开终端,输入以下命令来查看dmesg日志:

dmesg

如果你想查看特定级别的日志,可以使用-l选项指定日志级别。例如:

dmesg -l err

步骤2:筛选关键信息

使用grep命令来筛选出包含关键字的信息:

如何通过调整Debian系统dmesg日志级别高效追踪和定位复杂系统故障?
dmesg | grep error

步骤3:分析dmesg日志

通过分析dmesg日志,可以帮助我们定位Debian程序中的问题。再看例如,

  • 硬件故障或驱动程序问题;
  • 内存或硬盘空间不足;
  • 网络连接异常等。不过,

调整dmesg日志级别

说到方法一,使用sysctl命令调整日志级别

sudo sysctl -w kernel.printk= 3 4 1 3

从方法二来看。编辑GRUB配置文件调整日志级别

编辑/etc/default/grub文件,找到GRUBCMDLINELINUX_DEFAULT行,并添加或修改loglevel参数。

例如的观点是,

GRUB_CMDLINE_LINUX_DEFAULT= quiet loglevel=3

dmesg与journalctl的区别与选择原则

  • journald是systemd提供的一个服务。负责收集并存储程序的所有消息,这些消息都被称为“事件”;而dmesg是 Linux 内核直接将其写入内存缓冲区中的内容,这些内容都被称为“消息”。不过,
  • journald会根据事件类型进行分类和优先级处理。而 d mes g 是按照时间顺序排列的。
  • journald会自动清除旧事件,而 d mes g 会一直保留。
  • journalc t l 可以通过 journalctl -f 命令实时监控 journald 中的事件,而 d mes g 是不支持实时监控的。
  • journald 可以提供更高级的过滤和查询功能,而 d mes g 的过滤能力较弱。
  • journald 默认情况下不会写入 /var/log/d mes g,而是写入 /run/systemd/journal/。
  • journald 支持多个分区。也支持多个 journal 目录,每个目录对应一个 journal 分区。其实,这个代表着如果你的程序有多个 boot 分区或者 root 分区。那么它们各自都会有自己的 journal 目录。你可以在每个 journal 目录下单独管理他们自己的 journal 日志文件。这对那些需要同时管理多个分区上的 journal 日志文件的人来说是一个很大的好处。journald 不支持在同一个分区上共享多个 journal 目录。 对了这种设置可能会导致一些错误,因为每个分区都有自己的journal daemon进程。 它们之间可能会竞争资源或者干扰彼此。 这代表着如果你需要在同一分区上共享多个journal 目录。那么最好不要这样做,因为这样可能会导致一些问题或者困难。话说回来,journald 提供了几个选项来控制它如何处理不同的事件类型。它们分别是: - -r:reverse:反转排序顺序,而且显示最晚的记录 ;- -n:number:仅显示最终n条记录,而且不再追加新的记录到屏幕上;当没有参数时表示显示100条记录。如果想要显示更多记录,则可以增加该数字。- -u:unit:只显示unit相关信息;比如: - -s:show-system-id:显式打印 system-id 的值,以便后续使用这个 ID 来找出特定的 log entry。- -c --current:当前显示当前正在处理哪些操作。- -m --merge:合并log entries。- -q --quiet --no-pager:抑制 pager 显示结果。不让结果输出到屏幕上,直接输出到终端后台中去。- --no-hostname --no-priority --no-pid — no-cuts — no-numeric-timestamps — no-unixtimestamp — no-microseconds — no-monotonic — monotonic-timestamps – wall-clock-time – show-system-id – show-realtime-timestamps – wall-clock-time-timestamps.;
    1. journalc t l -r :逆序打印 log entries,最新的 log entry 在最前面;journalc t l -n :仅打印最终 n 条 log entries,不追加新的记录;老实说,journalc t l -u :只打印 unit 相关信息;其实,journalc t l -m :合并 log entries。journalc t l -q :抑制 pager 显示结果。不让结果输出到屏幕上,直接输出到终端后台中去。其他可用选项包括:-c、--current 、--merge、--quiet 和 --no-pager 等 这些选项主要用于控制 jurnalc tl 的行为。如: journcaltl --reverse 或 journcaltl --newest-first,两者都是翻转排序顺序,而且将最新最新的记录放置在最前面。journcaltl --last 或 journcaltl --latest,表示仅从log缓冲里读取最终一条记录,并不再追加新的数据至屏幕. journcaltl -f 或 journcaltl --follow,实现实时监视功能,当你启动这个选项后只要有新数据产生,就会自动追加到屏幕上. journcaltl-norotate或jourcnclt-noautosync,这两个都是关闭JornalD自动旋转功能,这样一来你就不能够像以前那样直接从/var/log/journal/xx目录里找到你想要查找到的那一天/小时/分钟创建出来的问题了. JournalCtL--r 或 JournalCtL--reverse,翻转排序顺序,将最新生成出来的问题放在最顶部. journalctL-nouTput、JournalCTL-numnum即可代表最大生成出来的问题数量,只能获取最终num条生成出来的问题,最常用的就是nouTput _.50. journalctL-quiet、JournalCTL-qui、 JournalCtl-silent 、journalctl-silence 都具有相同作用,可以静默模式执行-journalctL-JournalCTL _qui-te,无论何种方式执行,只要选择这几个参数后。journalctLJounralCTLqui-te就会使得jurnalctLJounralctlquite执行成静默模式了. journalctLq QUI TE QUITQUIQUITE _QUIQUITQQTEQIQTEQ-Q.Q.TE-Q .Q.Q.Q.Q.Q.q.Q.qq.teqte.Q.TET.Q.TEQTE QETE QQ TE Q Q q T QE QQ QE QE QQ QE QQ qQQ Q TE QE TE QQ qq qq qqqqqqqqqqqqQQQQQQQQQE QE QTQQTQTQTQQTQE QEQE EQ EQUEEEEQEQEEEEEEEEEQQQQQQQQQEQTTEEEEETEQTE ETETEEETEEEETEQQEQEQE EEEEEEEEEEQUUUUUEEEEEEEEEEEQEQEEEEEEETETEEEEEEETEIREEEEEQUUUUUUEEEEEEE ET EQ E ET E TT ET TTT T TTTTTTTT TTTT EE EE EE EE TT TTTTTT TTT TT TT TT TT TT TT EE EE ET ET ET T TE ET E E EE Q EQE EOEOEOOEOEOO EO O O O OE OE OE OE OOE OE OOE OOO EO EO OE EO OO EO EO OOEOOE OO OE EEGGGOEOEGGG GO GO GO GG GOGOGOGG GO OG EG G GGGG GG GG OG EG EG GG GGGOEGGGOOGEGGEGGGOEGGGOGOEGGOEGG GO EG GG GG GG GO GGOGG GGEEO GE GE GE GE GE GGE GE GEO GEO GEO GEO GE OG OG OG EGGEOGGE GEOGGE GO GGGGGOOOOOOOOOOOOEIOIGOOEIIOEIIGIIEEIIOOIIGIIEGIIEIIIIIIIIIIGIIEIIEIOGIIOIGI I IO I IG I GI I GI IO IG I GI IG II III III III III IIIIII IIIIIIII IIIIIIIIII I II II II II IIIIII IIIIIIIIII I I II II II II IICICICIICICIICIICICIICICCI CCCCCCCCCCCCCCCCCCCC CCCC CCCC CCCC CCC CCC CCC CCC CC CC CC CCC CCC CC CCCCCCC CCCCCCC CCCCCCC CCCCCCC CSCCSCSCSC SCC SCC SCC SCS SCS SCS CSCS CCS CCS CCS CCS CSC SSC SSC SSC SSC SCS CS CS CS CS CSC SC SC SC SC SS SS SS SSC SSC SSC SSC SS CSCSSCSCSSCSSSSCSSCSSS CSSSSCSSSSCSSCSSCCSSCCSSCCSSCSSCCS CSSSCSSCSSCCS CSSS SCCS SCCS SCCS SCCS CSSSCCSSCC CSSCSSCSC.CSS.SCSS.S.CSS.S.CSS.C.S.CSS.C.S.CSS.C.S.C.S.CSS.

。

标签:Debian