在paramiko的外壳中找不到Unifi的命令

时间:2020-08-10 07:27:39

标签: python shell ssh paramiko

我想将SSH命令发送到Unifi天线,特别是以下命令:set-inform http://unifi.<ip>:<port>/inform。该命令与Putty完全兼容,但是当我使用以下代码时,会收到以下响应:

Resp: 
Err: ash: set-inform: not found

我怀疑所选的shell错误。

import paramiko

ip = 'XX.XX.XX.XX'
port = 22
username = 'XXX'
password = 'XXX'
try:
    ssh = paramiko.SSHClient()
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    ssh.connect(ip, port, username, password)

    stdin, stdout, stderr = ssh.exec_command("set-inform http://unifi.<ip>:<port>/inform")
    outlines = stdout.readlines()
    errors = stderr.readlines()
    resp = ''.join(outlines)
    respErrors = ''.join(errors)
    print('Resp: '+resp)
    print('Err: '+respErrors)# Output
except AttributeError:
    print("Erreur inconnue" + stderr)
except TimeoutError:
    print("Erreur de connexion")

1 个答案:

答案 0 :(得分:1)

我需要指定命令的路径。这是要写的:

stdin, stdout, stderr = ssh.exec_command(" /usr/bin/mca-cli-op set-inform http://unifi.<ip>:<port>/inform")

您可以在此处查看整个项目:https://github.com/simbarras/unifiAdopter