gpt4 book ai didi

Java grep4J : how to reuse SSH connections

转载 作者:行者123 更新时间:2023-12-01 10:34:56 26 4
gpt4 key购买 nike

我正在使用 grep4j 搜索远程服务器中的日志文件,并在用户提供服务器详细信息并从浏览器中点击搜索时向用户显示结果。在我的 servlet 中,我使用下面的代码来服务每个搜索请求,如下所示,

import static org.grep4j.core.Grep4j.constantExpression;
import static org.grep4j.core.Grep4j.grep;
import static org.grep4j.core.fluent.Dictionary.on;
import static org.grep4j.core.fluent.Dictionary.options;
import static org.grep4j.core.fluent.Dictionary.with;

import org.grep4j.core.model.Profile;
import org.grep4j.core.model.ProfileBuilder;
import org.grep4j.core.result.GrepResults;


public class GrepSearcher {

private Profile remoteProfile = null;

GrepSearcher(){

}

//each request will call this method to initialize an SSH connection
GrepSearcher(String username, String password,String servername, String searchString){
this.remoteProfile = ProfileBuilder.newBuilder()
.name("DEV LOGS")
.filePath("LogFilepath")
.onRemotehost(servername)
.credentials(username,password)
.build();
}



public GrepResults getSearchResults(){
return grep(constantExpression("search query"),on(remoteProfile),with(options()));
}
}

在服务搜索请求后,与服务器建立的 SSH 连接是否立即关闭?如果是这样,我应该以某种方式维护配置文件还是隐式完成?打开新的 SSH 连接以在同一服务器上搜索不同的字符串似乎我做错了什么。

所有用户都会搜索的服务器数量很少。那么如何才能减少此搜索对远程服务器的负担呢?可能会保留一个静态配置文件列表并在空闲一段时间后将其终止?

提前致谢。

最佳答案

我已经快速(不是那么快)了解了 grep4j,我必须说没有办法在单个连接上执行多个 grep 命令。 grep4j 的内部结构只接受单个命令,并从开始到结束、从连接建立到连接关闭执行它。

它唯一能做的就是在多个配置文件上执行相同的 grep 命令。因此,除非您不修改源代码,否则您将能够做您想做的事情。抱歉

执行此操作的最佳方法是为 java 搜索不同的有状态 SSH 客户端(不仅仅是 grep),并从那里执行任何命令。 Google 表示有很多这样的库。

关于Java grep4J : how to reuse SSH connections,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34818662/

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