シリアル経由でのみサーバーにアクセスでき、Telnetを使用してBIOSにアクセスしようとしています(これは直接シリアルではなくリモートシリアル接続です)。
Ctrlもちろん、私のTelnetはサーバーが起動していないことを見ることができるので、サーバーに到達しますが++で再Alt起動したいのですが、Delこれは私のローカルコンピュータでキャプチャされます。 Fキーも私のローカルコンピュータに閉じ込められているようです。
CtrlRHEL Telnetアプリケーションの場合、++を発行するAlt基本的な方法は何ですかDel?
RHEL Telnetアプリケーションの場合、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
)。残念ながら、これらのキー入力シーケンスは通常、文字間で許容されるタイムアウトが小さいため、非常に迅速に入力する必要があります。
Telnetを介してこれらのシーケンスを送信する1つの方法は、端末エミュレータにある種のバインディング時に文字列を生成させることです。これは端末エミュレータによって大きく異なります。
もう1つの方法は、Telnet接続を切断してコマンドを実行して、新しいTelnet接続を介してシーケンスのみを送信することです。たとえば、テスト目的で、この予想されるスクリプトはログインを実行し、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