以下是代码:
client = paramiko.SSHClient()
client.load_system_host_keys()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect("1.1.1.1", username=username, password=password)
stdin, stdout, stderr = client.exec_command("set -units GB")
stdin, stdout, stderr = client.exec_command("vol show -vserver vs1 -volume test_volume -fields size")
return stdout.read()
从代码输出:
vserver volume size
------------------------ ------------------ ------
vs1 test_volume 1.07TB
设备输出:
test01::> set -units GB
test01::> vol show -vserver vs1 -volume test_volume -fields size
vserver volume size
------------------------ ------------------ ------
vs1 test_volume 1100GB
看起来paramiko没有在同一个频道中执行命令。我如何在python脚本中获得值“1100GB”?
提示:两个命令都应该在同一个会话中执行,这样我就能得到预期的输出,如设备
答案 0 :(得分:2)
当您运行client.exec_command()
时,这些命令实际上是在不同的执行会话中运行,因此,对set -units GB
vol show -vserver vs1 -volume test_volume -fields size
的呼叫实际上并未激活
您可以尝试用分号分隔命令并在一个会话中运行它们
stdin, stdout, stderr = client.exec_command(
"set -units GB; vol show -vserver vs1 -volume test_volume -fields size")