Paramiko ssh 输出未按预期获得输出

Paramiko ssh output not getting output as expected

代码如下:

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”?

提示:这两个命令应该在同一个会话中执行,这样我就会像在设备中一样得到预期的输出

当您 运行 client.exec_command() 时,这些命令实际上 运行 在不同的执行会话中执行,因此您对 set -units GB 的调用实际上并未在您的第二个会话中激活致电 vol show -vserver vs1 -volume test_volume -fields size

您可以尝试用 semi-colon 分隔命令并 运行 在一个会话中将它们合并

stdin, stdout, stderr = client.exec_command(
    "set -units GB; vol show -vserver vs1 -volume test_volume -fields size")