#実現したいこと
①ExselからVBAで以下のPythonスクリプト(test_python.py)を実行。
②Pythonスクリプト内でサーバーにssh接続しファイルをPut。
③サーバー内のシェルスクリプト(check.sh)の結果をメッセージボックス表示させたいです。
①と②までは実現できましたが、③がうまく出力させることができません。
「stdout」の処理をどのようにすればよろしいでしょうか?
ご教示お願いいたします。
test_python.py
Python
1import xlwings 2 3def apply_config(): 4 import paramiko 5 import scp 6 IPadd = '10.10.10.10' 7 ConfFile = 'c:/Users/user01/Desktop/test.conf' 8 HomeDir = '/home/user01/' 9 10 # ssh clientオブジェクト(ssh)作成 11 ssh = paramiko.SSHClient() 12 ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) 13 14 # ssh接続する 15 ssh.connect(hostname=IPadd, port=22, username='user01', password='hogehoge1!') 16 17 # コンフィグをscpにてputする 18 scp = scp.SCPClient(ssh.get_transport()) 19 scp.put(ConfFile, remote_path=HomeDir) 20 21 # スクリプトを実行する 22 stdin, stdout, stderr = ssh.exec_command('sudo sh /etc/tool/check.sh') 23 24 25 # 実行結果のstdoutとstderrを読み出す 26 for o in stdout: 27 print(o) 28 for e in stderr: 29 print(e) 30 31 import tkinter as tk 32 from tkinter import messagebox 33 34 root = tk.Tk() 35 root.withdraw() 36 messagebox.showerror("error", o) 37 38apply_config()
シェルスクリプト(check.sh)の出力結果
shell
1Hello! World!! 2Hello! Japan!! 3Hello! World!! 4Hello! Japan!! 5Hello! World!! 6Hello! Japan!! 7Hello! World!! 8Hello! Japan!! 9Hello! World!! 10Hello! Japan!!
回答1件
あなたの回答
tips
プレビュー