免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4729 | 回复: 6
打印 上一主题 下一主题

如何实现在远程主机上执行ping 其它机器的功能? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-12-19 10:05 |只看该作者 |倒序浏览
python脚本在A机器,需要远程在B机器上执行ping C机器。 怎么实现呢?谢谢

论坛徽章:
1
天蝎座
日期:2013-10-23 21:11:03
2 [报告]
发表于 2013-12-19 10:28 |只看该作者

论坛徽章:
0
3 [报告]
发表于 2013-12-19 11:12 |只看该作者
没明白啊。。。新手。

论坛徽章:
0
4 [报告]
发表于 2013-12-19 13:12 |只看该作者
import subprocess

p = subprocess.Popen(['ssh', 'root@youserver.com', 'ping', '-c', '1', 'g.cn'], stdout=subprocess.PIPE)
info = p.stdout.readlines()[1]

print(info) #输出: b'64 bytes from ni-in-f160.1e100.net (74.125.135.160): icmp_req=1 ttl=52 time=7.53 ms\n

exit(0)
请参考我在 python实现对本机和批量远程服务器的cpu负载的获取,怎么实现呢?中的回复

另外你那个 cannot import name OSRNG 问题解决了吗,怎么解决的?

论坛徽章:
0
5 [报告]
发表于 2013-12-19 13:49 |只看该作者
有没有不使用密钥的方式呢?

论坛徽章:
0
6 [报告]
发表于 2013-12-19 13:50 |只看该作者
cannot import name OSRNG 的问题没有解决
再次import paramiko的时候,不报这个错误了
具体报的什么没记住,处理方法是注释掉就可以用了。。

论坛徽章:
0
7 [报告]
发表于 2013-12-19 14:46 |只看该作者
本帖最后由 remyzane 于 2013-12-19 14:57 编辑

回复 5# peanutshell

我没找到 ssh 参数中带密码的方法,也就是说用subprocess 调用 ssh 我知道的有3种方法 不设置密码(?)、设置密钥文件、手工输入密码。
楼主可以看一下其他几位同仁推荐的python的shell交互库,可能可以自动设置密码,如果找到方法也麻烦告知一下。

下面给出一个不通过ssh的方案(稍微有点复杂):

如果服务器上有开启WEB服务的话,在服务器上加个定时任务(执行ping,把结果输出到WEB服务静态目录的文本文件中)
这样客户端就可以随时通过http查询该文件得到ping结果了

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP