Python SSH切换并重定向命令的打印输出

Python SSH切换并重定向命令的打印输出,python,redirect,Python,Redirect,我试图连接到交换机并重定向命令的输出,但它不起作用。它只能连接和断开开关 #!/usr/pkg/bin/python #importing modules import paramiko import sys import time # setting parameters like host IP, username, passwd and port # to gather cmds HOST = "10.50.170.21" USER = "user" PASS= "password" P

我试图连接到交换机并重定向命令的输出,但它不起作用。它只能连接和断开开关

#!/usr/pkg/bin/python
#importing modules
import paramiko
import sys
import time

# setting parameters like host IP, username, passwd and port
# to gather cmds
HOST = "10.50.170.21"
USER = "user"
PASS= "password"
PORT = 2024

# A function that logins and execute commands
def fn():
    client1=paramiko.SSHClient()
    #add missing client key
    client1.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    #connect to switch
    client1.connect(HOST,username=USER,password=PASS,port=2024)
    print "SSH connection to %s established" %HOST
    stdin,stdout,stderr =client1.exec_command('show-config \n')
    print stdout.read()

fn()
打印输出如下:

root@cic-1:~# python test-con.py
SSH connection to 10.50.171.22 established
********************************************************************************
BSP 8100

This system is provided for authorized users only. If you are not
an authorized user, please exit IMMEDIATELY.
********************************************************************************

root@cic-1:~#

有人知道这里会出现什么问题吗?

我按如下方式更改了代码,现在它工作正常:

#!/usr/pkg/bin/python

#importing modules
import paramiko
import sys
import time
import pdb
#pdb.set_trace()

# setting parameters like host IP, username, passwd and number of iteration
# to gather cmds
HOST = "10.50.171.22"
USER = "advanced"
PASS = "ett,30"
PORT = 2024
ITERATION = 3

# A function that logins and execute commands
def fn():
    client1=paramiko.SSHClient()
    #add missing client key
    client1.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    #connect to switch
    client1.connect(HOST,username=USER,password=PASS,port=PORT)
    print "SSH connection to %s established" %HOST

    remote_conn = client1.invoke_shell()
    remote_conn.send("\n")
    remote_conn.send("show \n")
    time.sleep(2)
    output = remote_conn.recv(10000)
    print output

#    stdin,stdout,stderr =client1.exec_command("config /n")
#    stdin,stdout,stderr =client1.exec_command("show /n")
#    print stdout.read()
    client1.close()    
fn()

您的代码(针对我可以访问的主机进行了更新)适用于我。可能与您连接到的主机有关。我正在连接到交换机,应该按照下面的stdin、stdout、stderr=client1.exec_命令('show-config\n')更正上面的代码当主机基于linux时,重定向命令prinout没有任何问题,但这对交换机不起作用。我已将调试添加到脚本import pdb pdb.set_trace()中,并收到以下错误:-Return-->/root/test con.py(31)(->None->fn()(pdb)n异常属性错误:“'NoneType'对象没有属性'path'”忽视