将本地脚本文件传输到远程主机并执行它。

remrunner的Python项目详细描述


遥控器

将本地脚本文件传输到远程主机并执行它。

要求

  • 支持Python2.7和Python3。
  • 帕拉米科1.10+。

安装

pip install remrunner

概要

from remrunner import runner
r = runner.Runner(host, username)

rval, stdout, stderr = r.run('/path/to/local/script.py')
if rval:
    print(stderr)
else:
    print(stdout)

r.close()

使用

  • 当使用脚本从大量远程主机收集信息时非常好。
  • 不需要跨多个系统维护脚本。只需要维护本地主机上的脚本版本。

详细信息

命名文件将复制到远程上的临时位置(../.remrunner/[pid]/) 主机,权限设置为0700,然后执行脚本。

在清理时,[pid]目录和所有内容在关闭之前都会被删除 连接。

API

类运行器

初始化(主机、用户、Kwargs)

host:必需。IP地址或fqdn

user:可选。默认为本地计算机上当前正在运行的用户。

关键字参数: auto_add:(布尔值)默认为true。设置paramiko client.autoaddpolicy。

运行(脚本、sudo、超时、opts)

在远程主机上运行命名的本地脚本。

script:本地计算机上脚本的路径

sudo:(布尔值)默认为false。如果为true,则执行命令打开 远程计算机将以“sudo”开头

timeout:(秒,可选)默认为10

opts:将传递给远程脚本的可选命令行参数。

关闭()
清除远程主机上的临时目录并关闭ssh和sftp会话。

示例

  • 使用sudo运行远程脚本:

    r.run(script, True)
    
  • 运行远程脚本并指定60秒超时:

    r.run(script, False, 60)
    
  • 使用超时和可选参数运行远程脚本:

    r.run(script, False, 15, "--verbose --interval=4")
    

已知问题

目前,由于这将用于自动化,remrunner假设 允许无密码登录的ssh密钥已经就位。 没有提示输入密码或ssh密码短语的选项。 也许在以后的版本中。

待办事项

在一些地方可以使用更好的异常处理。 需要测试。 可能需要清理/消除可选用户参数的污染。

作者

jeff leary(sillymonkeysoftware-at-gmail-dot-com)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
NetBeans中的Java Swing滚动窗格   java如何与具有复合键的表建立关系?   Android中读取文件时java数据丢失   java黄瓜场景。embed在ubuntu机器上不工作?   java从spring mvc控制器操作中,我如何获得请求/响应的访问权限?   java减去两个长值   java选择下一个值firebase 安卓   用于起始和结尾连字符的java正则表达式   Java正则表达式解释   java Lifefay freemarker ADT:方法不可用?   java我怎样才能让我的开关盒作用于JFrame?   java在我的场景中使用连接池的理想方式是什么   java我如何接受jsoup的cookies?   java如何将整数数组更改为字符串数组?   java Android操作\u指针\u向上直到剩余触摸移动时才调用   java为什么gradle会出错?   io如何在java中复制/拆分输入流?   java使JButton不可见,但尊重其原始空间   java Spring提交表单获取复选框值不起作用