从磁盘操作内重定向输出不起作用

从磁盘操作内重定向输出不起作用

我无法成功重定向使用磁盘操作的命令上的 STDOUT+STDERR。始终有效的标准重定向是不知何故现在捕获输出。两个实际例子:

示例1:

# wipefs --all --force /dev/sda >>/var/log/custom.log 2>&1

[   20.169018 ]  sda: sda1

示例2:

# mount --verbose --options defaults --types ext4 /dev/sda1 /path/is/here >>/var/log/custom.log 2>&1

[   30.947410 ] EXT4-fs (sda1): mounted filesystem with ordered data mode. Opts: (null)

有趣的是,这只在以某种方式接触磁盘时才会发生。脚本中的所有其他重定向均按预期工作。

有任何想法吗?

答案1

这不是命令的输出,这是内核日志消息。由于消息不是来自命令,因此它们不受重定向的影响。

内核日志消息通常进入日志文件,并且重要消息另外显示在控制台上。 “重要”和“控制台”的确切含义取决于日志记录配置。如果您使用 sysklogd,则配置文件为/etc/syslog.conf.如果您使用 rsyslog,则它是/etc/rsyslog.conf/etc/rsyslog.d/*。如果您使用 systemd 的内置日志记录,那么它就是/etc/systemd/journal.conf.内核还可以直接将日志打印到控制台,而无需通过可以配置的日志守护进程dmesg --console-…(但这通常是通过日志守护进程的配置间接完成的)。

相关内容