无法监控 Kickstart 安装后日志

无法监控 Kickstart 安装后日志

我正在使用包含以下内容的 Kickstart 脚本安装 Scientific Linux 7(但我没有理由认为所有 RHEL 分支都不是这种情况):

%post --interpreter /bin/bash --log /root/postinstall.log
# do stuff
%end

安装后,日志文件将按预期进行检查。

但是,使用 SL 6 我曾经能够更改为 TTY 2 并使用tail -f /mnt/sysimage/root/postinstall.log.现在,日志似乎已创建,但直到安装后过程完成后才会写入内容。

有没有办法监控这一进展?我在/tmp//var/log/、 、中查找了日志文件/mnt/sysimage/tmp/,但/mnt/sysimage/var/log/没有任何运气。如果日志文件不可用,是否可以通过 Kickstart 安装后脚本将输出发送到另一个 TTY?

尝试1:

%post --interpreter /bin/bash
(
# do stuff
echo foo
echo bar
echo baz
) | tee /root/postinstall.log > /dev/tty1
%end

这几乎有效,但是,行结尾似乎是一个问题。它只在屏幕上执行 LF,而不执行 CR。上面在 TTY1 上输出:

foo
    bar
        baz

尝试2:

%post --interpreter /bin/bash --log /root/postinstall.log

echo "Changing output to TTY 3; press Alt-F3 to view" > /dev/tty1
exec 1>/dev/tty3 2>&1
#do stuff
%end

这会将数据正确输出到屏幕,但不记录任何内容。它还具有奇怪的副作用,即在脚本完成后将重新启动延迟大约 10 分钟。

答案1

将输出重定向到 /dev/pts/0。

答案2

终于弄清楚了:

%post --interpreter /bin/bash

printf "Changing output to TTY 3; press Alt-F3 to view\r\n" > /dev/tty1
{
# do stuff
} 2>&1 | tee /root/postinstall.log > /dev/tty3

%end

正如问题中提到的,屏幕上/dev/tty1似乎存在行结尾问题,因此如果我重定向到,我的第一次尝试可能会起作用/dev/tty3。但这个解决方案避免了子shell并且还重定向STDERR。

答案3

exec < /dev/tty6 > /dev/tty6
chvt 6
<scripts here>
chvt 1

这对我有用,我可以监控 %post 而无需翻转 ttys

答案4

如果您使用的话,问题出在回车符上

echo "message" >/dev/tty1

尝试一下

echo -e "message\r" >/dev/tty1

相关内容