首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

运用python paramiko的exec_command无法执行延迟得到结果的命令

2012-09-18 
使用python paramiko的exec_command无法执行延迟得到结果的命令远程登录成功,一般的如ls -ltr之类也可以

使用python paramiko的exec_command无法执行延迟得到结果的命令
远程登录成功,一般的如"ls -ltr"之类也可以得到命令相应的结果,但是想要执行延迟得到结果的命令,比如sipp。
无法触发对应的结果。
下面例子中是sipp的主叫侧发起呼叫命令,在被叫侧的sipp进程已经人工开启,理论上只要主叫侧命令执行,被叫侧
至少能得到一条sip消息。



#!/usr/bin/env python
import paramiko
import time

hostname = '10.170.9.35'
port = 22
username = 'root'
password = 'mgcroot'

sipp_command_uac = './sipp.3.1.src/sipp 192.168.55.4:5060 -sf ./scenario/uac_video_amr.xml -s 1411420123456 -i 192.168.55.242 -p 5071 -mi 192.168.55.242 -mp 21310 -aa -r 20 -d 10000 -t u1 -m 1'

ls = 'ls -ltr *.py'

if __name__ == '__main__':
  paramiko.util.log_to_file('paramiko.log')
  s = paramiko.SSHClient()
  s.load_system_host_keys()
  s.connect(hostname, port, username, password)

  print type(sipp_command_uac)
  stdin, stdout, stderr = s.exec_command('cd /home/ezhuhao ;' + sipp_command_uac + '; sleep 12')

  print stdout.read()

  s.close()

[解决办法]
我也有相同的苦恼,python似乎不能实现,你看我发过的帖子,我用python3.3的subprocess.Popen()操作,它可以传递子进程参数,并可以用PIPE读取子进程输出。可能我的理解有偏差,你试试用下,我也期待结果。
PS:我觉得你应该用list来做命令,不要用带一大堆空格的字符串做命令参数。

热点排行