免费注册 查看新帖 |

Chinaunix

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

如何使用python执行远程shell脚本? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-01-19 23:05 |只看该作者 |倒序浏览
如何使用python执行远程shell脚本?

即在A主机上执行pythonabc.py脚本,使得远程主机B 执行 保存在 A主机上的shell脚本shellabc.sh(大约100行),并获取B主机执行完shellabc.sh后的输出。
大家有没有好的办法?

论坛徽章:
1
天蝎座
日期:2013-10-23 21:11:03
2 [报告]
发表于 2014-01-20 08:29 |只看该作者
使用 pexpect

论坛徽章:
0
3 [报告]
发表于 2014-01-20 10:18 |只看该作者
谢谢你的建议!
pexpect考虑过,这个好像很复杂,要写交互。而且,现在的需要是有一堆shell要执行,都写交互的话,想想都恐怖啊。
用pexpect的话,感觉还不如直接sftp到远程再本地调用方便。

论坛徽章:
11
技术图书徽章
日期:2014-03-01 14:44:34天蝎座
日期:2014-05-21 22:11:59金牛座
日期:2014-05-30 17:06:14
4 [报告]
发表于 2014-01-20 11:11 |只看该作者
坦白说没有免费的午餐,pexpect复杂一点但通用灵活。
另外一种办法就是ssh-keygen/ssh-copy-id,实现自动密钥验证取代手动密码验证,然后就可以直接调用远程‘ssh remote-user@remote-host remote-script.sh’,麻烦之处在于要手动创建与维护两台机器间的公钥。
至于捕获输出,还是要变通一点,既然B都登陆到A了,那么通过临时文件向A输出内容不是更简单吗,这是shell编程中简单有效的办法。

论坛徽章:
0
5 [报告]
发表于 2014-01-20 13:17 |只看该作者
本帖最后由 remyzane 于 2014-01-20 13:21 编辑

回复 4# timespace

从楼主的回复看,楼主自己也知道常规的处理原理:
通过交互库登录、上传、执行;设置密钥(自动)登录后直接在本地执行sftp和ssh命令)。
(如果楼主本就知道ssh可以设置密钥(自动)登录)

那楼主你是要哪样?找现成的程序?还是习惯性动脑不动手?

这世界上肯定有现成的类似程序,但是你找到,并搞清楚人家的实现,再稍微做一下整理定制,还是自己实现一下快。

论坛徽章:
0
6 [报告]
发表于 2014-01-20 22:43 |只看该作者
那还是sftp吧
谢谢各位!

论坛徽章:
0
7 [报告]
发表于 2014-01-21 20:51 |只看该作者
salt就搞定了。。。

论坛徽章:
0
8 [报告]
发表于 2014-01-22 14:03 |只看该作者
python的paramiko模块可以

论坛徽章:
0
9 [报告]
发表于 2014-02-07 12:43 |只看该作者
回复 7# sopato


    谢谢!
    刚找了下资料,salt要装客户端。领导希望不要在被管理的机器上额外装软件。

论坛徽章:
0
10 [报告]
发表于 2014-02-07 12:44 |只看该作者
回复 9# Pugna_zfr


    这个我试过,执行单条命令是可以的,执行脚本不行
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP