この記事では、シェルによる自動対話を実現するためのexpectコマンドについて、ループや判定などの簡単な制御フロー機能をシェル経由で実装できる例を交えて説明します。以下の記事では、シェルの自動対話を実現するための Expect コマンドの使用に関する関連情報を中心に、サンプルコードを通じて詳しく紹介しています。必要な方は一緒に参照してください。
背景
Linux スクリプトには、リモート ログイン ssh、リモート コピー scp、ファイル転送 sftp など、リモート操作のための多くのシナリオがあります。これらのコマンドにはセキュリティ パスワードの入力が必要です。コマンドを通常に使用するには、パスワードを手動で入力し、セキュリティ検証を受け入れる必要があります。自動化されたリモート操作を実現するために、expect の機能を借用できます。
expect は、人間の介入なしで通信するための自動化された対話型タスクを実装するために使用される無料のプログラミング ツール言語です。 Expect は時間の経過とともに常に進化しており、その機能はますます強力になり、システム管理者の強力なアシスタントとなっています。 Expect をシステム上で実行するには、まず Tcl プログラミング言語のサポートが必要です。
expectのインストール
expectはTclに基づいて作成されているため、expectをインストールする前にTclをインストールする必要があります。
(1) Tclのインストール
ホームページ: http://www.tcl.tk
ダウンロードアドレス: http://www.tcl.tk/software/tcltk/downloadnow84.tml
1.ソース コード パッケージをダウンロードします
wget http://nchc.dl.sourceforge.net/sourceforge/tcl/tcl8.4.11-src.tar.gz
2. ソース コード パッケージを解凍します
tar xfvz tcl8.4.11-src.tar.gz
3. インストールと設定
1. インストールが完了したら、tcl ソース コードのルート ディレクトリに移動し、tclUnixPort をコピーします。サブディレクトリ unix の下の .h をサブディレクトリ generic にコピーします。
2. tcl ソース コードは、予期されるインストール プロセスにまだ必要であるため、まだ削除しないでください。
(2) インストールを期待します (Tcl ライブラリが必要です)
ホームページ: http://expect.nist.gov/
1. ソースコードパッケージをダウンロードします
cd tcl8.4.11/unix ./configure --prefix=/usr/tcl --enable-shared make make install
2. ソースコードパッケージを解凍します
wget http://sourceforge.net/projects/expect/files/Expect/5.45/expect5.45.tar.gz/download
3. インストールと設定
tar xzvf expect5.45.tar.gz
expect
expect のコアは、spawn、expect、send、set です。
spawn は実行するコマンドを呼び出します
- expect コマンドプロンプト情報が表示されるのを待ちます。つまり、ユーザー入力のプロンプトをキャプチャします。
- send は対話を必要とする値を送信し、ユーザーマニュアルを置き換えますinput
- set は変数 value
- interact を設定します。実行完了後、対話状態が維持され、制御がコンソールに渡されます。このとき、手動操作を実行できます。このような文がない場合は、リモート端末に留まらず、ログイン完了後に終了します。
- expect eof を追加する必要があります。これは、if....endif
- expect スクリプトと同様に、キャプチャ端末の出力情報が終了することを意味します。通常、expect eof は、次のようになります。自動化されたタスクを実行するのに十分です。
その他の設定
- タイムアウトを期待しないように設定しますタイムアウトを-1に設定します
- タイムアウトを期待する300秒を設定します。300秒を超えても期待されるコンテンツが表示されない場合は、終了しますタイムアウトを300に設定します
- 構文を期待する
expect は tcl 構文を使用します
- Tcl コマンドはスペースで区切られた単語で構成され、最初の単語はコマンド名で、残りはコマンドパラメータです
- cmd arg arg arg
- $foo
たとえば、あるコマンドの結果を引数として別のコマンドに渡す場合、角括弧は入れ子になったコマンドを実行します。コマンドの場合は、記号 [cmd arg] -
を使用します。二重引用符は、フレーズをコマンドの引数としてマークします。「$」記号と角かっこは、引き続き二重引用符内で解釈されます。 中括弧は、コマンドのパラメータとしてマークされたフレーズも示します。ただし、中括弧内の他の記号は解釈されません -
バックスラッシュ記号は、特殊記号を引用するために使用されます。例: n は、を表します。バックスラッシュ記号も使用されます。「$」記号、引用符、角括弧、中括弧の特別な意味を閉じるために使用されます -
例 -
login.expは、リモートログイン、ショートカットメソッド専用です。 :login.exp "exclude" "${remote_ip} " "${remote_user}" "${remote_passwd}" "${remote_command}"
cd expect5.45 ./configure --prefix=/usr/expect --with-tcl=/usr/tcl/lib --with-tclinclude=../tcl8.4.11/generic make make install ln -s /usr/tcl/bin/expect /usr/expect/bin/expect
もう学びましたか?この記事を読んで、シェル自動化の相互作用についてより深く理解していただければ幸いです。
日付に従ってファイルをダウンロードする Linux シェルの FTP メソッド
以上がシェルの自動対話を実装するための Expect コマンドを説明する例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

Linuxメンテナンスモードは、Grubメニューから入力できます。特定の手順は次のとおりです。1)GRUBメニューのカーネルを選択し、「E」を押して編集し、2)「Linux」行の最後に「シングル」または「1」を追加し、3)Ctrl Xを押して開始します。メンテナンスモードは、システム修理、パスワードリセット、システムのアップグレードなどのタスクに安全な環境を提供します。

Linux Recoveryモードを入力する手順は次のとおりです。1。システムを再起動し、特定のキーを押してGrubメニューを入力します。 2。[RecoveryMode)でオプションを選択します。 3. FSCKやrootなどの回復モードメニューで操作を選択します。リカバリモードを使用すると、シングルユーザーモードでシステムを開始し、ファイルシステムのチェックと修理を実行し、構成ファイルを編集し、システムの問題を解決するのに役立ちます。

Linuxのコアコンポーネントには、カーネル、ファイルシステム、シェル、および共通ツールが含まれます。 1.カーネルはハードウェアリソースを管理し、基本的なサービスを提供します。 2。ファイルシステムはデータを整理して保存します。 3.シェルは、ユーザーがシステムと対話するインターフェイスです。 4.一般的なツールは、毎日のタスクを完了するのに役立ちます。

Linuxの基本構造には、カーネル、ファイルシステム、およびシェルが含まれます。 1)カーネル管理ハードウェアリソースとUname-Rを使用してバージョンを表示します。 2)ext4ファイルシステムは、大きなファイルとログをサポートし、mkfs.ext4を使用して作成されます。 3)シェルは、BASHなどのコマンドラインインタラクションを提供し、LS-Lを使用してファイルをリストします。

Linuxシステムの管理とメンテナンスの重要な手順には、次のものがあります。1)ファイルシステム構造やユーザー管理などの基本的な知識をマスターします。 2)システムの監視とリソース管理を実行し、TOP、HTOP、その他のツールを使用します。 3)システムログを使用してトラブルシューティング、JournalCtlおよびその他のツールを使用します。 4)自動化されたスクリプトとタスクのスケジューリングを作成し、Cronツールを使用します。 5)セキュリティ管理と保護を実装し、iPtablesを介してファイアウォールを構成します。 6)パフォーマンスの最適化とベストプラクティスを実行し、カーネルパラメーターを調整し、良い習慣を開発します。

Linuxメンテナンスモードは、起動時にinit =/bin/bashまたは単一パラメーターを追加することにより入力されます。 1.メンテナンスモードの入力:GRUBメニューを編集し、起動パラメーターを追加します。 2。ファイルシステムを読み取りおよび書き込みモードに再マウントします:Mount-Oremount、RW/。 3。ファイルシステムの修復:FSCK/dev/sda1などのFSCKコマンドを使用します。 4.データをバックアップし、データの損失を避けるために慎重に動作します。

この記事では、DebianシステムのHadoopデータ処理効率を改善する方法について説明します。最適化戦略では、ハードウェアのアップグレード、オペレーティングシステムパラメーターの調整、Hadoop構成の変更、および効率的なアルゴリズムとツールの使用をカバーしています。 1.ハードウェアリソースの強化により、すべてのノードが一貫したハードウェア構成、特にCPU、メモリ、ネットワーク機器のパフォーマンスに注意を払うことが保証されます。高性能ハードウェアコンポーネントを選択することは、全体的な処理速度を改善するために不可欠です。 2。オペレーティングシステムチューニングファイル記述子とネットワーク接続:/etc/security/limits.confファイルを変更して、システムによって同時に開くことができるファイル記述子とネットワーク接続の上限を増やします。 JVMパラメーター調整:Hadoop-env.shファイルで調整します

このガイドでは、Debian SystemsでSyslogの使用方法を学ぶように導きます。 Syslogは、ロギングシステムとアプリケーションログメッセージのLinuxシステムの重要なサービスです。管理者がシステムアクティビティを監視および分析して、問題を迅速に特定および解決するのに役立ちます。 1. syslogの基本的な知識Syslogのコア関数には以下が含まれます。複数のログ出力形式とターゲットの場所(ファイルやネットワークなど)をサポートします。リアルタイムのログ表示およびフィルタリング機能を提供します。 2。syslog(rsyslogを使用)をインストールして構成するDebianシステムは、デフォルトでrsyslogを使用します。次のコマンドでインストールできます:sudoaptupdatesud


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

WebStorm Mac版
便利なJavaScript開発ツール

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。
