gpt4 book ai didi

java - 从java程序远程执行kafka sh脚本

转载 作者:行者123 更新时间:2023-11-30 05:59:36 24 4
gpt4 key购买 nike

我正在尝试执行 kafka 脚本来检索主题、消费者组和滞后信息。我不断收到错误消息,并通过此论坛和其他论坛进行搜索,发现了相互矛盾的信息。有些人说不可能从 Windows 在 Unix 上执行远程脚本,而另一些人则给出了一些关于如何尝试纠正此错误的建议。我能够连接并运行一个简单的 ping 命令并能够检索响应。也许我在这里遗漏了一个简单的被忽视的错误。

这是代码:

         try {
jsch.setKnownHosts("C:\\Users\\.ssh\\ssh_host_rsa_key.pub");
Session session = jsch.getSession(uname, host, 22);

Properties config = new Properties();
config.put("StrictHostKeyChecking", "no");

session.setConfig(config);
session.setPassword(pword);
session.connect();

Process p = Runtime.getRuntime().exec("./usr/kafka/bin/
kafka-consumer-groups.sh --bootstrap-server 192.xxx.xx.xxx:9092
--describe -group OPSII");

InputStream scriptStdout = p.getInputStream();
BufferedReader scriptReader= new BufferedReader(new
InputStreamReader(scriptStdout));
String scriptOutput = scriptReader.readLine();
StringBuilder sb = new StringBuilder();

while ((scriptOutput = scriptReader.readLine())!= null) {
sb.append(scriptOutput + "\n");
}

scriptStdout.close();

错误:

Exception in thread "main" java.io.IOException: Cannot run program 
"./usr/kafka/bin/kafka-consumer-groups.sh": CreateProcess
error=2, The system cannot find the file specified
at java.lang.ProcessBuilder.start(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)

我已经确认该脚本可以在远程 UNIX 计算机上运行并且目录是正确的。可能是格式问题,应该是“//”而不是“/”吗?究竟是什么原因会导致此错误?请注意,这不是一个重复的问题,因为其他建议的解决方案都不起作用。

最佳答案

您可以使用以下代码通过JSch运行脚本

    // open a channel
channel = session.openChannel("exec");
// type in your command
String command = "./path/to/your_script.sh --add_params \n";
//Below command will execute the data you set in the previous line
((ChannelExec) channel).setCommand(command);
channel.connect();

请注意,这仅使用 JSch 库。

编辑:根据您的评论,您也想从控制台获取输出以用于该用途:

InputStream in = channel.getInputStream();

关于java - 从java程序远程执行kafka sh脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52478574/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com