如何在Linux上通过SSH转发dmesg实时输出
实现SSH下无干扰实时查看dmesg日志
方法一:后台定向输出到当前终端
- 先获取当前SSH会话的终端设备路径:
输出示例:tty/dev/pts/3 - 后台启动dmesg实时监控,并将输出定向到当前终端:
执行后dmesg的新日志会实时输出到当前shell,而命令本身在后台运行,你可以正常执行其他操作,完全不干扰当前会话。dmesg -w > $(tty) 2>&1 & - 停止监控时,先查看后台任务ID:
再用jobskill %任务ID终止(比如kill %1);或者直接根据进程名终止:pkill dmesg
- 先获取当前SSH会话的终端设备路径:
方法二:借助systemd journal(适用于systemd系统)
如果你的Linux系统使用systemd,可以通过journalctl实时获取内核日志,同样后台运行不占前台:journalctl -k -f > $(tty) 2>&1 &停止方式和上面一致,用
jobs查看任务ID后kill,或者直接执行pkill journalctl。补充说明
这两种方案都不会占用当前shell的前台会话,你可以正常执行其他命令的同时接收dmesg新日志。需要注意的是,当断开SSH连接后,这些后台进程会自动终止,下次连接需要重新执行命令。
内容的提问来源于stack exchange,提问作者Tangogow
相关产品推荐
相关产品推荐

