diff options
| author | zhangshuai <[email protected]> | 2022-07-19 09:40:24 +0800 |
|---|---|---|
| committer | zhangshuai <[email protected]> | 2022-07-19 09:40:24 +0800 |
| commit | b83fcd03c833ea4cb0333854281c53811f9cc557 (patch) | |
| tree | 5219333ca4a1cd6cdfce3074ad8a45840484ece7 | |
| parent | f2de37d577edbb77217d021474f431aea521619a (diff) | |
fix: NEZ-2021 调整agent更新方式,使用echo将 rpm -U 传入atrel-22.08.01
| -rw-r--r-- | src/main/java/net/geedge/confagent/controller/OTAController.java | 24 |
1 files changed, 5 insertions, 19 deletions
diff --git a/src/main/java/net/geedge/confagent/controller/OTAController.java b/src/main/java/net/geedge/confagent/controller/OTAController.java index ff8f8d2..48c7100 100644 --- a/src/main/java/net/geedge/confagent/controller/OTAController.java +++ b/src/main/java/net/geedge/confagent/controller/OTAController.java @@ -20,7 +20,6 @@ public class OTAController extends BaseController{ @Autowired private ConfagentUtil confagentUtil; - private String updateSh = "/opt/nezha/nz-agent/update.sh"; @Value("${version}") private String currentVersion; @@ -64,20 +63,6 @@ public class OTAController extends BaseController{ return R.error(RCode.OTA_VERSION_ERROR); } - //创建update.sh文件 用于在线更新agent - String updateCommand = String.format("rpm -Uvh %s", updatePackagePath); - BufferedWriter out = null; - try { - out = new BufferedWriter(new FileWriter(updateSh)); - out.write("#!/bin/bash"); - out.newLine(); - out.write(updateCommand); - } catch (IOException e) { - e.printStackTrace(); - }finally { - out.close(); - } - //检查atd服务是否启动 InputStream atdStatus = Tool.RuntimeUtil.exec("systemctl status atd").getInputStream(); String atdStatusStr = Tool.IoUtil.read(atdStatus).toString(); @@ -85,11 +70,12 @@ public class OTAController extends BaseController{ return R.error(RCode.OTA_ATD_SERVICE_DOWN); } - //延迟一分钟更新 - String atCommand ="at now +1 minute -f %s"; - atCommand = String.format(atCommand,updateSh); + + //延迟一分钟更新 使用echo 将更新命令传入at + String atCommand ="echo \"rpm -Uvh %s\" | at now +1 minutes"; + atCommand = String.format(atCommand,updatePackagePath); log.info("update nz-agent : {}", atCommand); - Tool.RuntimeUtil.exec(atCommand); + new ProcessBuilder("/bin/bash", "-c", atCommand).start(); return R.ok(); } |
