【发布时间】:2017-04-07 06:18:10
【问题描述】:
我正在尝试使用 python-paramiko 在远程机器上执行 sudo 命令,(Linux2 上的 Python 2.7.9) 下面是代码。当我执行代码时,它每次都会给出不同的输出,而当我在 python>>> cmdline 中运行相同的代码时它工作正常
import paramiko
import sys
import time
def send_string_and_wait(command, wait_time, should_print):
shell.send(command)
time.sleep(wait_time)
receive_buffer = shell.recv(1024)
if should_print:
return receive_buffer
dbname='test'
cl='testdb'
host='testhost'
owner='uname'
passwd='p'
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(str(host), username=str(owner), password=str(passwd), port=22)
shell = client.invoke_shell()
send_string_and_wait("sudo su - oracle\n", 1, True)
send_string_and_wait(str(passwd) + "\n", 1, True)
a=send_string_and_wait("sh Validation_Final.sh" + str(' ') + str(dbname) + str(' ') + str(cl) + "\n", 0, True)
print a
client.close()
任何建议和建议将不胜感激,谢谢!
【问题讨论】: