インターネット上には、expect を使用して自動ログインを実現するスクリプトが多数存在しますが、明確な説明はなく、初心者はそれらをコピーして収集することがよくあります。しかし、なぜこのように書かれているのかは分かりません。この記事では、スクリプトの原理を説明するために最小限の例を使用します。 スクリプトコードは次のとおりです。 #!/usr/bin/期待する タイムアウトを30に設定 ssh -l ユーザー名 192.168.1.1 を起動します 「パスワード:」を期待します 「ispass\r」を送信 交流する 1. [#!/usr/bin/expect] この行は、スクリプト内のコードを実行するためにどのシェルを使用するかをオペレーティング システムに指示します。ここで期待されるのは、実際には Linux の bash や Windows の cmd と同じものです。 注意: この行はスクリプトの最初の行である必要があります。 2. [タイムアウトを30に設定] 基本的に、英語がわかる人なら誰でも、これがタイムアウトを設定するためのものであることを知っています。ここで覚えておく必要があるのは、そのタイミングの単位が秒であるということです。 3. [ssh -l ユーザー名 192.168.1.1 を起動] Spawn は、expect 環境に入った後に実行できる expect の内部コマンドです。expect がインストールされていない場合、またはデフォルトの SHELL の下で直接実行された場合、spawn コマンドは見つかりません。したがって、spawn コマンドを見つけるために「which spawn」などのコマンドを使用しないでください。たとえば、Windows の dir はシェルに付属する内部コマンドです。dir.com または dir.exe という実行可能ファイルは見つかりません。 その主な機能は、対話型コマンドを渡すために ssh 実行プロセスにシェルを追加することです。 4. [「パスワード:」を期待] ここでの expect も expect の内部コマンドです。少しわかりにくいかもしれません。expect のシェルコマンドは内部コマンドと同じですが、機能は同じです。慣れるだけです。このコマンドは、最後の出力結果に文字列「password:」が含まれているかどうかを判定することを意味します。含まれている場合は、すぐに戻ります。含まれていない場合は、しばらく待ってから戻ります。ここでの待機時間は、上記で設定した 30 秒です。 5. [“ispass\r”を送信] これは、手動でパスワードを入力するのと同等の対話型アクションを実行するためのものです。 ヒント: コマンド文字列の最後に「\r」を追加することを忘れないでください。異常な待機状態が発生した場合は、それを確認できます。 6. [インタラクト] 実行が完了したら、対話状態を維持し、コンソールに制御を渡します。このとき、手動で操作することができます。この文が含まれていない場合、システムはリモート端末に留まるのではなく、ログイン後にログアウトします。 以上がLinuxでの自動ログイン例についての記事の内容です。123WORDPRESS.COMをご愛顧いただき、誠にありがとうございます。 以下もご興味があるかもしれません:
|
>>: シンプルなページング効果を実現するjQuery+Ajax
目次プロトタイプを理解するプロトタイプオブジェクトを理解するインスタンスプロパティとプロトタイププロ...
目次1. 計算プロパティとは何ですか? 2. 計算プロパティの構文3. 例1. 計算プロパティとは何...
1 MVCCとは何かMVCC の正式名称は、マルチバージョン同時実行制御です。データベースへの同時ア...
ページの主要部分: <body> <ul id="メニュー"&...
目次1. コンポーネントの紹介2. ソースコード分析2.1 テンプレート2.2 スクリプト2.3 実...
導入チャートは、データ セットを読みやすくし、その各部分を区別しやすくするために使用されるデータのグ...
目次背景element-ui の自動構築はどのように機能しますか?メイクファイル新しい.jsファイル...
Nginx は、IP ベースの仮想ホスト構成、ポート ベースの仮想ホスト構成、ドメイン名ベースの仮...
CSS画像結合技術1. 画像のステッチ画像ステッチング技術は、個々の画像を収集する技術です。画像の多...
1. プラグインを追加し、pomファイルの下に次の設定を追加します。 <!-- mybatis...
CentOS6 インストール ディスク (任意のバージョン) を準備するか、別の pnux インスト...
<br />矛盾が生じます。私たちのような小さな工房では、デザインとレイアウトは基本的に...
CSSコードコンテンツをクリップボードにコピー.bottomTable{背景色: rgb (249,...
目次1. プラットフォームバスの紹介1.1. Linuxドライバの分離と階層化1.1.1. Linu...
序文CSS を使用して点線を生成するのは、フロントエンド開発者にとっては簡単です。一般的に、これを実...