首頁 > 運維 > linux運維 > 情境linux的實例詳解

情境linux的實例詳解

PHP中文网
發布: 2017-06-21 11:19:17
原創
1926 人瀏覽過

情境linux--在腳本中如何優雅地退出telnet

情境

telnet指令是TELNET協定的使用者接口,它支援兩種模式:指令模式會話模式。雖然telnet支援許多指令,但大部分情況下,我們只是使用它查看目標主機是否開啟了某個連接埠(預設是23)

其執行結果有兩種:

  • 連接埠未開啟

#
$ telnet 101.199.97.65 62715
登入後複製
登入後複製
Trying 101.199.97.65...
telnet: connect to address 101.199.97.65: Connection refused
登入後複製
登入後複製

此時,指令已退出。

  • 連接埠已開啟

$ telnet 101.199.97.65 62715
登入後複製
登入後複製
Trying 101.199.97.65...
Connected to 101.199.97.65.
Escape character is '^]'.
登入後複製

此時命令未退出。
根據提示Escape character is '^]'.可知退出字元為'^]'(CTRL+])。此時輸入其它字元無法使其退出,CTRL+C都不行。輸入CTRL+]後會自動執行,進入指令模式:

^]
登入後複製
telnet>
登入後複製

此時再執行quit才會真正退出。

telnet> quit
登入後複製
Connection closed.
登入後複製

其中,Escape character可以自訂,使用參數-e

$ telnet -e p 101.199.97.65 62715
Telnet escape character is 'p'.
Trying 101.199.97.65...
Connected to 101.199.97.65.
Escape character is 'p'.
p
telnet> quit
Connection closed.
登入後複製

即便如此,退出telnet還是麻煩。那麼,更進一步,如果出現在腳本中應該如何(優雅地)退出telnet呢?

方案

其實可以這樣:

  • 輸出結果後立即退出

    $ echo "" | telnet 101.199.97.65 62715
    登入後複製
    登入後複製
Trying 101.199.97.65...
Connected to 101.199.97.65.
Escape character is '^]'.
Connection closed by foreign host.
登入後複製
登入後複製
$ echo "" | telnet 101.199.97.65 62715
登入後複製
登入後複製
Trying 101.199.97.65...
telnet: connect to address 101.199.97.65: Connection refused
登入後複製
登入後複製
  • #輸出結果後延遲退出
    sleep 2使得telnet輸出結果後,停留2秒後退出指令模式。

    $ sleep 2 | telnet 101.199.97.65 62715
    登入後複製
Trying 101.199.97.65...
Connected to 101.199.97.65.
Escape character is '^]'.
Connection closed by foreign host.
登入後複製
登入後複製

使用這種方式可以將標準輸出和標準錯誤重定向到檔案中,透過分析檔案的內容來判斷連接埠開啟狀態。

以上是情境linux的實例詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板