Centos

無法監控 Kickstart 安裝後日誌

  • May 11, 2021

我正在使用包含以下內容的 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 分鐘。

終於想通了:

%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。但是這個解決方案避免了 subshel​​l 並且還重定向了 STDERR。

將您的輸出重定向到 /dev/pts/0 。

引用自:https://unix.stackexchange.com/questions/350415