将本地脚本文件传输到远程主机并执行它。
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密码短语的选项。 也许在以后的版本中。
待办事项
在一些地方可以使用更好的异常处理。 需要测试。 可能需要清理/消除可选用户参数的污染。