Ctrl + Alt + Del 和 F 键 使用 Telnet

Ctrl + Alt + Del 和 F 键 使用 Telnet

我只能通过串行方式访问服务器,并且我正在尝试使用 telnet 访问其 BIOS(这不是直接串行,而是远程串行连接)。

我的 telnet 当然到达了服务器,因为我可以看到它启动失败,但我想用Ctrl+ Alt+重新启动它Del,但是这是由我的本地计算机捕获的。 F 键似乎也被我的本地计算机捕获。

Ctrl对于 RHEL telnet 应用程序,发出+ Alt+的默认方法是什么Del

对于 RHEL telnet 应用程序,发出 F 键的默认方法是什么?

答案1

大多数 BIOS 接受各种版本的 vt100 键盘转义序列作为功能键。例如,戴尔控制台重定向指南列出等价物:

F7     <Esc> <Shift>ov  or   <Esc> [ 1 8 ~

还有一些额外的非标准序列,例如

<Ctrl><Alt><Del>   <Esc> <Shift>r <Esc> r <Esc> <Shift> r

(当然<Shift>ov你会打字OV)。不幸的是,这些按键序列通常必须非常快速地键入,因为字符之间通常只允许很小的超时。

通过 telnet 发送此类序列的一种方法是让终端仿真器在某种绑定时生成字符串。这非常依赖于终端仿真器。

另一种方法是断开 telnet 并运行命令以通过新的 telnet 连接仅发送序列。例如,为了进行测试,此expect 脚本执行登录并发送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

相关内容