[解決済み] パラミコでSSHのリターンコードを取得するには?
2022-11-05 02:53:54
質問
client = paramiko.SSHClient()
stdin, stdout, stderr = client.exec_command(command)
コマンドのリターンコードを取得する方法はありますか?
すべてのstdout/stderrを解析して、コマンドが正常に終了したかどうかを知ることは困難です。
どのように解決するのですか?
SSHClient は、Paramiko のより低レベルな機能のためのシンプルなラッパークラスです。 このクラスは
API ドキュメント
には
recv_exit_status()
メソッドに
Channel
クラスで使用されます。
非常にシンプルなデモスクリプトです。
import paramiko
import getpass
pw = getpass.getpass()
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.WarningPolicy())
client.connect('127.0.0.1', password=pw)
while True:
cmd = raw_input("Command to run: ")
if cmd == "":
break
chan = client.get_transport().open_session()
print "running '%s'" % cmd
chan.exec_command(cmd)
print "exit status: %s" % chan.recv_exit_status()
client.close()
実行例です。
$ python sshtest.py
Password:
Command to run: true
running 'true'
exit status: 0
Command to run: false
running 'false'
exit status: 1
Command to run:
$
関連
-
[解決済み】Pythonのvirtualenvを離脱/終了/無効化する方法
-
[解決済み] Pythonで現在時刻を取得する方法
-
[解決済み] 辞書を値で並べ替えるにはどうしたらいいですか?
-
[解決済み] リストの最後の要素を取得する方法
-
[解決済み] モジュールの関数名(文字列)を使って、モジュールの関数を呼び出す。
-
[解決済み] なぜC++はPythonよりもstdinからの行の読み込みが遅いのですか?
-
[解決済み] 複数行の長い文字列を作成するためのPythonicな方法
-
[解決済み] Pythonで標準エラー出力するには?
-
[解決済み] Python RequestsでJSONデータをPOSTする方法とは?
-
[解決済み] DataFrameに日付間の日数カラムを追加する pandas
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 出力バッファリング無効化
-
[解決済み] PythonでのAWS Lambdaのインポートモジュールエラー
-
[解決済み] Pythonです。未束縛のメソッドを束縛する?
-
[解決済み] バブルソートの宿題
-
[解決済み] dict を txt ファイルに書き、それを読み取る?
-
[解決済み] タプルのリストを複数のリストに変換するには?
-
[解決済み] 文字列のリストを内容に基づいてフィルタリングする
-
[解決済み] サブフォルダからのインポートモジュール
-
[解決済み] Celeryタスクのユニットテストはどのように行うのですか?
-
[解決済み] Alembicアップグレードスクリプトでインサートやアップデートを実行するにはどうすればよいですか?