Python 3.8 paramiko ssh,执行命令时遇到问题

问题描述

我对使用Python编码(以及通常的编码)还很陌生,并且在使用paramiko在SSH会话中获取要执行的命令时遇到了问题。我正在使用的代码如下:

    from paramiko import SSHClient,AutoAddPolicy
    import time

    client = SSHClient()
    client.load_host_keys('C:\ssh\id_rsa')
    time.sleep(5)
    client.set_missing_host_key_policy(AutoAddPolicy())
    time.sleep(5)
    client.connect('192.168.2.138',username='pi-star',password='******')
    time.sleep(5)
    with open('C:\WeatherPro\Final_Page.txt') as fnlpage:
        datapage = fnlpage.read()
        stdin,stdout,stderr = client.exec_command(datapage)
    time.sleep(5)
    client.close()

这是从Windows 10 Pro计算机到运行Pi-Star(基于raspbian \ debian的操作系统-GUI)的带有MMDVM帽子(附加火腿无线电收发器设备)的Raspberry Pi进行SSH。我使用它每10分钟将POCSAG页面发送给寻呼机。 Final_Page.txt是我使用先前的代码创建的文件,其中包含我要执行的linux终端命令。创建文本文件的原因是命令更新大约每分钟执行的信息的一部分。这是写在文本文件中的确切文本,也是linux命令需要构造的确切方式(包括引号):

sudo RemoteCommand 7642页面1246587“ T:91.2,H:42.5,BP:29.39,PA:1551,CF:1.0103,DA:2363,WG:64.93,ET:8.904”

双引号内的信息是每分钟变化的信息,是在寻呼机屏幕上显示的实际页面(这是来自赛车气象站的信息)。如果我取消了“ with open”和“ .read()”行,而改用此行代码,它将执行命令并正确发送页面:

    stdin,stderr = client.exec_command('sudo RemoteCommand 7642 page 1246587 "T: 91.2,H: 42.5,BP: 29.39,PA: 1551,CF: 1.0103,DA: 2363,WG: 64.93,ET: 8.904"')

如果我尝试像原始代码中那样使用文本文件的“ with open”和“ .read()”来执行命令,则不会发生任何事情。关于如何获取经常更新的信息并使其正确执行的其他想法?

非常感谢您的帮助, 瑞安·W。

P.S。-睡眠时间只是给每个进程执行时间,因为Raspberry Pi的运行速度不是很快,并且在两者之间没有中断时会遇到麻烦。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...