paramiko 多个命令作为参数
paramiko multiple commands as argument
我正在从事自动化方面的工作。在这里,我面临着在 Linux 设备上同时或顺序执行 n 条命令的挑战。现在我正在使用下面的方法,但我已经为每个命令创建了静态配置,而不是有任何方法可以使用命令列表。可能是命令的数量会在不同的情况下发生变化
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(host, username=user,password=passwd )
stdin, stdout, stderr = ssh.exec_command(cmd1)
output1 = stdout.read()
data1 = str(output1)
displaymessage1 = data1
stdin, stdout, stderr = ssh.exec_command(cmd2)
output1 = stdout.read()
data1 = str(output1)
#print data1
displaymessage2 = data1
stdin, stdout, stderr = ssh.exec_command(cmd3)
output1 = stdout.read()
data1 = str(output1)
#print data1
displaymessage3 = data1
stdin, stdout, stderr = ssh.exec_command(cmd4)
output1 = stdout.read()
data1 = str(output1)
#print data1
displaymessage4 = data1
stdin, stdout, stderr = ssh.exec_command(cmd5)
output1 = stdout.read()
data1 = str(output1)
考虑将代码重构为接受命令 运行 的函数,并将命令保存在列表中。像
def run_command(cmd):
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(host, username=user,password=passwd )
stdin, stdout, stderr = ssh.exec_command(cmd)
output = stdout.read()
return str(output)
commands_list = [cmd1, cmd2, cmd3, cmd4]
# run each command in the list and keep the output in data
data = [run_command(cmd) for cmd in commands_list]
我正在从事自动化方面的工作。在这里,我面临着在 Linux 设备上同时或顺序执行 n 条命令的挑战。现在我正在使用下面的方法,但我已经为每个命令创建了静态配置,而不是有任何方法可以使用命令列表。可能是命令的数量会在不同的情况下发生变化
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(host, username=user,password=passwd )
stdin, stdout, stderr = ssh.exec_command(cmd1)
output1 = stdout.read()
data1 = str(output1)
displaymessage1 = data1
stdin, stdout, stderr = ssh.exec_command(cmd2)
output1 = stdout.read()
data1 = str(output1)
#print data1
displaymessage2 = data1
stdin, stdout, stderr = ssh.exec_command(cmd3)
output1 = stdout.read()
data1 = str(output1)
#print data1
displaymessage3 = data1
stdin, stdout, stderr = ssh.exec_command(cmd4)
output1 = stdout.read()
data1 = str(output1)
#print data1
displaymessage4 = data1
stdin, stdout, stderr = ssh.exec_command(cmd5)
output1 = stdout.read()
data1 = str(output1)
考虑将代码重构为接受命令 运行 的函数,并将命令保存在列表中。像
def run_command(cmd):
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(host, username=user,password=passwd )
stdin, stdout, stderr = ssh.exec_command(cmd)
output = stdout.read()
return str(output)
commands_list = [cmd1, cmd2, cmd3, cmd4]
# run each command in the list and keep the output in data
data = [run_command(cmd) for cmd in commands_list]