직렬을 통해서만 서버에 액세스할 수 있고 텔넷을 사용하여 BIOS에 액세스하려고 합니다(이것은 직접 직렬이 아니라 원격 직렬 연결입니다).
Ctrl물론 내 텔넷은 서버가 시작되지 않는 것을 볼 수 있으므로 서버에 도달하지만 ++ 로 Alt다시 시작 하고 싶지만 Del이는 내 로컬 컴퓨터에서 캡처됩니다. F 키도 내 로컬 컴퓨터에 갇혀 있는 것 같습니다.
CtrlRHEL 텔넷 애플리케이션의 경우 ++를 발행하는 Alt기본 방법은 무엇입니까 Del?
RHEL 텔넷 애플리케이션의 경우 F 키를 발급하는 기본 방법은 무엇입니까?
답변1
대부분의 BIOS는 다양한 버전의 vt100 키보드 이스케이프 시퀀스를 기능 키로 허용합니다. 예를 들어,Dell 콘솔 리디렉션 가이드동등한 항목 나열:
F7 <Esc> <Shift>ov or <Esc> [ 1 8 ~
또한 몇 가지 추가적인 비표준 시퀀스도 있습니다.
<Ctrl><Alt><Del> <Esc> <Shift>r <Esc> r <Esc> <Shift> r
(물론 <Shift>ov
을 입력할 수도 있습니다 OV
). 불행하게도 이러한 키 입력 시퀀스는 일반적으로 문자 사이에 허용되는 시간 초과가 작기 때문에 매우 빠르게 입력해야 합니다.
텔넷을 통해 이러한 시퀀스를 보내는 한 가지 방법은 터미널 에뮬레이터가 일종의 바인딩 시 문자열을 생성하도록 하는 것입니다. 이는 터미널 에뮬레이터에 따라 매우 다릅니다.
또 다른 방법은 텔넷 연결을 끊고 명령을 실행하여 새 텔넷 연결을 통해 시퀀스만 보내는 것입니다. 예를 들어 테스트 목적으로 이 예상 스크립트는 로그인을 수행하고 F7 시퀀스( \033\[18~
)를 보냅니다.
#!/bin/expect -f
spawn telnet localhost
expect login:
send myuserid\r
expect Password:
send mypassword\r
expect "\$ "
send "echo hi\r"
expect "hi"
expect "\$ "
send "dd count=6 bs=1 | od -c\r"
send "\033\[18~\r"
expect "\$"
send "echo hi\r"
expect "hi"
send_user "done\n"
물론 BIOS에 로그인할 필요는 없으므로 그냥 로그인하면 됩니다.
#!/bin/expect -f
spawn telnet remotebios
expect "Connected to "
send "\033\[18~"
더 간단한 방법을 시도해 볼 수도 있습니다.
echo -e '\033[18~' | nc remotebios 23