忘记密码   免费注册 查看新帖 | 论坛精华区

ChinaUnix.net

  平台 论坛 博客 认证专区 大话IT 视频 徽章 文库 沙龙 自测 下载 频道自动化运维 虚拟化 储存备份 C/C++ PHP MySQL 嵌入式 Linux系统
最近访问板块 发新帖
查看: 515 | 回复: 6

windows上使用paramiko模拟ssh执行命令问题 [复制链接]

求职 : 其它语言研发
论坛徽章:
0
发表于 2017-05-18 00:32 |显示全部楼层
  1. #!/usr/bin/env python3
  2. #-*- coding:utf-8 -*-
  3. #stop dpat

  4. import paramiko
  5. import time

  6. username='username'
  7. password='password'
  8. ip='192.168.1.1'

  9. #建立连接
  10. ssh = paramiko.SSHClient()
  11. ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
  12. ssh.connect(hostname=ip, port=22, username=username, password=password,timeout=10)
  13. #打印分隔符
  14. print('  Server: ' + ip)

  15. stdin, stdout, stderr = ssh.exec_command("jstorm list|grep -A 1 dpat-test|grep status")
  16. test_name = stdout.readline()
  17. print(test_name)


  18. #stop dpat-test,while循环直到状态由ACTIVE变为KILLED
  19. while('ACTIVE' in test_name):
  20.     time.sleep(1)
  21.     #一直想不通执行该命令后为什么没有效果,尝试使用while循环去一遍遍执行,
复制代码
stdin, stdout, stderr = ssh.exec_command('cd /run/ayena/dpat/;sh stop-dpat.sh')
这样代码执行总是没有效果,即时更改为
stdin, stdout, stderr = ssh.exec_command('cd /run/ayena/dpat/;sh stop-dpat.sh',timeout=10)
也没有效果,感觉timeout=10在这里没有效果
大家有什么建议吗,能看出来哪里有问题?


版本信息:
win7
python3.5
D:\python3.5\Lib\site-packages\paramiko 2.1.1

论坛徽章:
0
发表于 2017-05-18 07:04 |显示全部楼层
print stderr
来自苹果客户端来自客户端

求职 : 其它语言研发
论坛徽章:
0
发表于 2017-05-18 09:34 |显示全部楼层
799029078 发表于 2017-05-18 07:04
print stderr

print(stderr.read())是空值
来自苹果客户端来自客户端

论坛徽章:
14
程序设计版块每日发帖之星
日期:2015-10-11 06:20:0015-16赛季CBA联赛之新疆
日期:2017-04-12 22:55:4715-16赛季CBA联赛之山东
日期:2016-05-28 18:18:5615-16赛季CBA联赛之新疆
日期:2016-05-07 05:05:3215-16赛季CBA联赛之八一
日期:2016-03-14 12:32:06IT运维版块每日发帖之星
日期:2016-02-27 06:20:0015-16赛季CBA联赛之深圳
日期:2016-01-31 10:37:3615-16赛季CBA联赛之同曦
日期:2016-01-24 17:51:44狮子座
日期:2016-01-11 11:25:34酉鸡
日期:2016-01-11 11:24:2415-16赛季CBA联赛之北控
日期:2016-01-02 13:16:5215-16赛季CBA联赛之八一
日期:2016-01-01 21:41:36
发表于 2017-05-18 19:01 |显示全部楼层
test_name = stdout.read()

求职 : 其它语言研发
论坛徽章:
0
发表于 2017-05-18 21:58 |显示全部楼层
baby_神 发表于 2017-05-18 19:01
test_name = stdout.read()

有什么区别?和readline
来自苹果客户端来自客户端

求职 : 其它语言研发
论坛徽章:
0
发表于 2017-05-18 22:48 |显示全部楼层
本帖最后由 killedman 于 2017-05-18 22:53 编辑
  1. #!/usr/bin/env python3
  2. #-*- coding:utf-8 -*-
  3. #stop dpat

  4. import paramiko
  5. import time

  6. username='username'
  7. password='password'
  8. ip='192.168.1.1'

  9. #建立连接
  10. ssh = paramiko.SSHClient()
  11. ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
  12. ssh.connect(hostname=ip, port=22, username=username, password=password,timeout=10.0)
  13. #打印分隔符
  14. print('  Server: ' + ip)

  15. stdin, stdout, stderr = ssh.exec_command("jstorm list|grep -A 1 dpat-test|grep status")
  16. test_name = stdout.readline()
  17. print(test_name)


  18. #stop dpat-test,while循环直到状态由ACTIVE变为KILLED
  19. #while('ACTIVE' in test_name):
  20. if('ACTIVE' in test_name):
  21.     print(time.asctime(time.localtime(time.time())))
  22.     stdin, stdout, stderr = ssh.exec_command('cd /run/ayena/dpat/;sh stop-dpat.sh')
  23.     #神奇的5秒钟,上一条命令添加timeout参数不知道为什么不起作用
  24.     time.sleep(5)
  25.     print(time.asctime(time.localtime(time.time())))
  26.     stdin, stdout, stderr = ssh.exec_command('jstorm list|grep -A 1 dpat-test|grep status')
  27.     print(stderr.read())
  28.     test_name = stdout.readline()
  29.     print(test_name)

  30. print("begin  stoping run-dpat: "  + time.asctime(time.localtime(time.time())))
  31. while('KILLED' in test_name):
  32.     time.sleep(10)
  33.     stdin, stdout, stderr = ssh.exec_command('jstorm list|grep -A 1 dpat-test|grep status')
  34.     test_name = stdout.readline()
  35. if test_name is '':
  36.     print(" end  stoping dpat-test : "  + time.asctime(time.localtime(time.time())))
  37.     print('stop dpat-test process success')
  38. #关闭连接
  39. ssh.close()
复制代码

求职 : 其它语言研发
论坛徽章:
0
发表于 2017-05-18 22:50 |显示全部楼层
回复 6# killedman
    #神奇的5秒钟,上一条命令添加timeout参数不知道为什么不起作用
    time.sleep(5)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

SACC2017购票6.8折优惠进行时

2017中国系统架构师大会(SACC2017)将于10月19-21日在北京新云南皇冠假日酒店震撼来袭。今年,大会以“云智未来”为主题,云集国内外顶级专家,围绕云计算、人工智能、大数据、移动互联网、产业应用等热点领域展开技术探讨与交流。本届大会共设置2大主会场,18个技术专场;邀请来自互联网、金融、制造业、电商等多个领域,100余位技术专家及行业领袖来分享他们的经验;并将吸引4000+人次的系统运维、架构师及IT决策人士参会,为他们提供最具价值的交流平台。
----------------------------------------
优惠时间:2017年8月2日前

活动链接>>
  

北京皓辰网域网络信息技术有限公司. 版权所有 京ICP证:060528号 北京市公安局海淀分局网监中心备案编号:1101082001
广播电视节目制作经营许可证(京) 字第1234号 中国互联网协会会员  联系我们:
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP