Linux自動ログイン例の説明

Linux自動ログイン例の説明

インターネット上には、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をご愛顧いただき、誠にありがとうございます。

以下もご興味があるかもしれません:
  • Linux Expectでスイッチに自動的にログインして設定を保存する方法
  • Linux は自動ログイン スクリプトのサンプル コードを実現することを期待しています
  • Linux でリモート マシンの自動ログインを実現するために expect スクリプトを使用する
  • Linux オペレーティング システムで自動ログインを実装する方法

<<:  MySQLにインデックスを追加する方法

>>:  シンプルなページング効果を実現するjQuery+Ajax

推薦する

セマンティック XHTML タグの紹介

まず最初に指摘しておきたいのは、人間は視覚的な区分を通じてコン​​テンツの意味を判断できるが、検索エ...

オンラインMySQLオプティマイザの誤判断によって発生した低速クエリイベントを記録する

序文:非常に遅いクエリとリクエストのタイムアウトのアラートを受け取りました。メトリックを通じて My...

Dockerのネットワークモードと設定方法

1. Dockerネットワークモードdocker run が Docker コンテナを作成するときに...

MySQLはライブラリ内の主キーなしでテーブルインスタンスコードを素早く取得します

概要MySQL データベースで主キーのないテーブルを表示するための SQL ステートメントをいくつか...

JavaScript で文字列を数値に変換する方法

目次1.parseInt(文字列、基数) 2. 数値() 3.parseFloat()主なメソッドは...

CSS仕様 BEM CSSとOOCSSサンプルコード詳細説明

序文プロジェクト開発中、各人のコーディング習慣が異なるため、記述された CSS コードは十分に構造化...

IDEA が docker を統合して springboot プロジェクトを展開するプロセス全体

目次1. IDEAはdockerプラグインをダウンロードします2. クラウドサーバーDocker 2...

InnoDB エンジンの redo ファイルのメンテナンス方法

InnoDB REDO ログ ファイルのサイズと数を調整する場合は、次の手順に従います。 1. My...

インデックススキャンを使用したMySQLソート

目次sakilaをインストールするインデックススキャンソートテーブル構造インデックススキャンをソート...

jQueryは画像の強調表示を実現します

ページ上の画像を強調表示することは非常に一般的です。ここでは、jQuery を使用して画像を強調表示...

写真をアップロードして顔を認識する Vue+axios サンプルコード

目次Axios リクエストQs処理データ分析Vantアップロードファイル形式完全なコードこの記事では...

Docker に Kong ゲートウェイをインストールする方法の例

1. Dockerネットワークを作成する docker ネットワーク作成 kong-net 2. デ...

Better-scrollはメニューとコンテンツをリンクする効果を実現します

1. 基本的な使い方 <!DOCTYPE html> <html lang=&qu...

Nginx 構成 SSL および WSS 手順の紹介

目次序文1. Nginxのインストール1. Nginxをダウンロードする2. 依存関係をインストール...