ホームページ > 運用・保守 > Linuxの運用と保守 > シナリオ Linux 例の詳細な説明

シナリオ Linux 例の詳細な説明

PHP中文网
リリース: 2017-06-21 11:19:17
オリジナル
1917 人が閲覧しました

シナリオ Linux--スクリプトで Telnet を正常に終了する方法

シナリオ

telnet コマンドは、TELNET プロトコルのユーザー インターフェイスであり、 コマンド モードセッション モード の 2 つのモードをサポートしています。 Telnet は多くのコマンドをサポートしていますが、ほとんどの場合、ターゲット ホストが特定のポート (デフォルトは 23) を開いているかどうかを確認するためにのみ使用されます。 実行結果は 2 つあります:

    ポートが開いていません
  • $ 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 '^]'.
    ログイン後にコピー
  • 現時点ではコマンドは終了していません。
プロンプト エスケープ文字は '^]'. によると、終了文字は '^]' (CTRL+]) であることがわかります。この時点で他の文字を入力しても終了しません。また、CTRL+C も終了しません。 CTRL+] を入力すると、自動的に実行され、コマンド モードに入ります:

^]
ログイン後にコピー
telnet>
ログイン後にコピー

本当に終了するには、この時点で quit を実行します。 Escape character is '^]'.可知退出字符为'^]'(CTRL+])。此时输入其它字符不能使其退出,CTRL+C都不行。输入CTRL+]后会自动执行,进入命令模式:
telnet> quit
ログイン後にコピー
Connection closed.
ログイン後にコピー

此时再运行quit才会真正退出。

$ 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.
ログイン後にコピー
$ echo "" | telnet 101.199.97.65 62715
ログイン後にコピー
ログイン後にコピー

其中,Escape character可以自定义,使用参数-e

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
ログイン後にコピー
ログイン後にコピー
その中で、エスケープ文字はパラメータ -e を使用してカスタマイズできます:

Trying 101.199.97.65...
telnet: connect to address 101.199.97.65: Connection refused
ログイン後にコピー
ログイン後にコピー
それでも、Telnet を終了するのは依然として面倒です。では、さらに一歩進んで、スクリプト内に Telnet が含まれている場合、どのようにして (正常に) 終了すればよいのでしょうか?

解決策

は実際には次のようになります:
  • 結果を出力した後すぐに終了します
$ 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.
    ログイン後にコピー
    ログイン後にコピー
    rrreeerrreee

  • 結果を出力した後に終了を遅らせます

    sleep 2によりtelnetが結果を出力し、2秒間留まり、コマンドモードを終了します。
  • rrreee

    rrreee

    このメソッドを使用して、標準出力と標準エラーをファイルにリダイレクトし、ファイルの内容を分析してポートのオープン状態を判断します。 🎜

    以上がシナリオ Linux 例の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

    関連ラベル:
    ソース:php.cn
    このウェブサイトの声明
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
    人気のチュートリアル
    詳細>
    最新のダウンロード
    詳細>
    ウェブエフェクト
    公式サイト
    サイト素材
    フロントエンドテンプレート