paramikoを利用して、サーバやネットワーク機器からコマンド結果を取得しようとしています。
コマンドが失敗したときのみ、stderrをエラーファイルに記載したいのですが、成功失敗に関わらず、エラーファイルが作成されてしまいます。こちらの対処方法を教えていただけないでしょうか?
python
1# coding:utf-8 2 3import paramiko 4 5HOST = '192.168.11.30' 6USER = 'user' 7PSWD = 'password' 8 9ssh = paramiko.SSHClient() 10ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) 11ssh.connect(HOST, username=USER, password=PSWD) 12 13cmd = "cat /etc/ssh/sshd_config" 14stdin, stdout, stderr = ssh.exec_command(cmd) 15 16 17if stderr != "": 18 19 f = open("stderr"+date.strftime('%Y-%m-%d_%H%M%S')+".txt", "w") 20 f.write("=" * 40 + '\n') 21 f.write(" get command : " + cmd + '\n') 22 f.write("=" * 40 + '\n\n') 23 for line_err in stderr: 24 print (line_err.strip('\n')) 25 f.write(line_err.strip('\n')) 26 f.write('\n') 27 f.close() 28 29if stdout != "": 30 31 f = open("stdout"+date.strftime('%Y-%m-%d_%H%M%S')+".txt", "w") 32 f.write("=" * 40 + '\n') 33 f.write(" get command : " + cmd + '\n') 34 f.write("=" * 40 + '\n\n') 35 for line_out in stdout: 36 print (line_out.strip('\n')) 37 f.write(line_out.strip('\n')) 38 f.write('\n') 39 f.close() 40 41ssh.close() 42 43
エラーファイルの内容が知りたいです。(原因特定の為)

回答1件
あなたの回答
tips
プレビュー