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脚本)