Python のインストールでは、コマンド ライン対話型モジュール pexpect を使用します。
Pexpect は、ssh、ftp、passwd、telnet などのコマンド ライン コマンドと対話するために使用できる純粋な Python モジュールです。Linux システムで特に簡単に使用できます。Python のインストールと使用方法を詳しく見てみましょう。コマンドライン対話型モジュール pexpect の基本チュートリアル:
1. インストール
1. easy_install ツールをインストールします
python ez_setup.py をインストールします (このスクリプトは自動的に公式 Web サイトに移動します)検索、ダウンロード、インストールします)
wget http://peak.telecommunity.com/dist/ez_setup.py
easy_install ツールをアップグレードします
2. pexpect をインストールしますpython ez_setup.py -U setuptools
テストしてください:
easy_install Pexpect
OKがインストールされました。
2. 基本的な使い方
1.run()関数
run関数は比較的単純で、簡単な操作しか実現できません
コードは次のとおりです:
(command, timeout =-1,withexitstatus=False,events=None,extra_args=None, logfile=None, cwd=None, env=None)
例:
[root@OMS python]# python Python 2.7.3rc1 (default, Nov 7 2012, 15:03:45) [GCC 4.1.2 20080704 (Red Hat 4.1.2-48)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import pexpect >>> import pxssh >>>
spawnはrunよりも強力で、より複雑な対話を実現できます
pexpect.run('ls -la') # 返回值(输出,退出状态) (command_output, exitstatus) = pexpect.run('ls -l /bin', withexitstatus=1)
timeoutは待機のタイムアウト値を指定します。インタラクション用に、
maxread は、TTY (Teletype 端末) からの読み取りを試行する最大バイト数を設定します。
searchwindowsize は、入力バッファからのパターン マッチングの位置を指定します。先頭から一致します。
logfile パラメータは、ログの記録場所を指定します。
作業プロセス:class spawn __init__(self, command, args=[], timeout=30, maxread=2000, searchwindowsize=None, logfile=None, cwd=None, env=None)
pxsshは、ssh接続を確立するために使用されるpexpectの派生クラスであり、pexpectよりも使いやすいです。
login() ターゲットマシンへの ssh 接続を確立します;
prompt() プロンプトを待ちます。通常はコマンドの実行の完了を待つために使用されます。
3. 例
コマンドをリモートサーバーに送信し、結果を返すスクリプトを作成します。
スクリプトの内容:
# 第一步与终端建立连接 child = pexpect.spawn('scp foo user@example.com:.') # 第二步等待终端返回特定内容 child.expect('Password:') # 第三步根据返回内容发送命令进行交互 child.sendline(mypassword)
使用法:
#!/usr/bin/python #2013-01-16 by larry import pexpect def login(port,user,passwd,ip,command): child=pexpect.spawn('ssh -p%s %s@%s "%s"' %(port,user,ip,command)) o='' try: i=child.expect(['[Pp]assword:','continue connecting (yes/no)?']) if i == 0: child.sendline(passwd) elif i == 1: child.sendline('yes') else: pass except pexpect.EOF: child.close() else: o=child.read() child.expect(pexpect.EOF) child.close() return o hosts=file('hosts.list','r') for line in hosts.readlines(): host=line.strip("\n") if host: ip,port,user,passwd,commands= host.split(":") for command in commands.split(","): print "+++++++++++++++ %s run:%s ++++++++++++" % (ip,command), print login(port,user,passwd,ip,command) hosts.close()
host.listファイルの内容は次のとおりです:
python scripts.py
戻り結果:
Python のインストールとコマンド ライン インタラクティブ モジュール pexpect の使用に関連するその他の記事については、PHP 中国語 Web サイトに注目してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









LinuxターミナルでPythonバージョンを表示する際の許可の問題の解決策PythonターミナルでPythonバージョンを表示しようとするとき、Pythonを入力してください...

PythonのPandasライブラリを使用する場合、異なる構造を持つ2つのデータフレーム間で列全体をコピーする方法は一般的な問題です。 2つのデータがあるとします...

10時間以内にコンピューター初心者プログラミングの基本を教える方法は?コンピューター初心者にプログラミングの知識を教えるのに10時間しかない場合、何を教えることを選びますか...

UvicornはどのようにしてHTTPリクエストを継続的に聞きますか? Uvicornは、ASGIに基づく軽量のWebサーバーです。そのコア機能の1つは、HTTPリクエストを聞いて続行することです...

Pythonでは、文字列を介してオブジェクトを動的に作成し、そのメソッドを呼び出す方法は?これは一般的なプログラミング要件です。特に構成または実行する必要がある場合は...

この記事では、numpy、pandas、matplotlib、scikit-learn、tensorflow、django、flask、and requestsなどの人気のあるPythonライブラリについて説明し、科学的コンピューティング、データ分析、視覚化、機械学習、Web開発、Hの使用について説明します。

fiddlereveryversings for the-middleの測定値を使用するときに検出されないようにする方法
