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/성과도 없었습니다. 로그 파일을 사용할 수 없는 경우 킥스타트 설치 후 스크립트를 통해 출력을 다른 TTY로 보낼 수 있습니까?

1번을 시도해보세요:

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

이것은 거의 작동하지만 줄 끝이 문제인 것 같습니다. CR이 아닌 LF만 화면에서 수행됩니다. 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. 그러나 이 솔루션은 하위 쉘을 피하고 STDERR도 리디렉션합니다.

답변3

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

이것은 나에게 효과적입니다. tty를 뒤집지 않고도 %post를 모니터링할 수 있습니다.

답변4

문제는 캐리지 리턴에 있습니다.

echo "message" >/dev/tty1

시도 해봐

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

관련 정보