最近在对以前的采集系统进行改版,同时对原来的运维部分也进行了改版。以前的运维功能模块,是基于Java开发,通过Java来执行相应的命令,但是不管是windows还是Linux系统,都不是很稳定,总是出现无法关闭、启动等问题。本次改版计划用fabric+FastAPI的方式来进行。通过测试发现,Linux系统下服务的启动、关闭、上传等几乎没有出现过先前的问题,比较稳定。下面把相关的代码贴出,供有需求的同学参照
第一部分:FastAPI接口部分
from fastapi import FastAPI, Path
from com.fy.fastapi.monitor.shell.fabric.FabricLinux import FabricLinux
app = FastAPI()
#执行shell命令;
#调用示例: http:// 127.0.0.1:8000/items/3? q=%E6%B5%8B%E8%AF%95
@app.get("/cmd/{cmd}")
def runCommand(cmd, host, userName, password):
fabric = FabricLinux(host , userName , password)
result = fabric.runCommand(cmd)
fabric.closeClient()
return {"res": result }
#上传文件;
#调用示例: http:// 127.0.0.1:8000/items/3? q=%E6%B5%8B%E8%AF%95
@app.get("/upload/{srcFile}")
def upload(srcFile, targetDir, host, userName, password):
fabric = FabricLinux(host , userName , password)
result = fabric.upload(srcFile, targetDir)
fabric.closeClient()