rpyc + plumbum 实现远程调用执行shell脚本

Posted 堕落门徒

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了rpyc + plumbum 实现远程调用执行shell脚本相关的知识,希望对你有一定的参考价值。

rpyc可以很方便实现远程方法调用, 而plumbum则可以实现在python中类似shell的方式编码:

具体实现代码如下:

Server.py

import rpyc
from rpyc.utils.server import ThreadedServer
from plumbum import local
from plumbum.cmd import sh


class CalculatorService(rpyc.Service):
    """根据路径和脚本名执行脚本
    :param path:  路径
    :param shn:   执行脚本名
    """
    def exposed_execute(self, path, shn):
        exec=sh[shn]
        with local.cwd(local.cwd / path):
            exec()
        return

if __name__ == "__main__":
    server = ThreadedServer(service=CalculatorService, port=12105)
    server.start()

Client.py

import rpyc

class ClientService(rpyc.Service):
    def exposed_foo(self):
        return "foo"

conn = rpyc.connect("10.47.58.196", 12105)
#脚本路径
path="/data/local/test"
#脚本名
shn="echo.sh"
#远程调用执行远程shell脚本
x = conn.root.execute(path, shn)
conn.close()

将echo.sh脚本放在/data/local/test路径下,先远程启动Server.py,然后执行Client.py即可远程调用执行echo.sh脚本。

以上是关于rpyc + plumbum 实现远程调用执行shell脚本的主要内容,如果未能解决你的问题,请参考以下文章

Fabric vs Plumbum:差异,用例,优点和缺点

打开rpyc格式文件出现乱码,该用啥软件打开?

传递函数是 RPyC 中的参数

在 rpyc 中返回远程对象

Python之Rpyc模块

Python RPyC如何实现客户端与服务端通信