有没有办法打开Linux/Unix系统上可用的文件,并使用Java将所有异常复制到文本文件中
我正在尝试创建一个程序,它将打开Linux/Unix系统中可用的日志文件,并将所有异常跟踪复制到另一个文件中。以下是我已完成的命令/步骤有没有办法打开Linux/Unix系统上可用的文件,并使用Java将所有异常复制到文本文件中,java,ssh,Java,Ssh,我正在尝试创建一个程序,它将打开Linux/Unix系统中可用的日志文件,并将所有异常跟踪复制到另一个文件中。以下是我已完成的命令/步骤 登录到Linux/Unix 打开日志文件目录 打开日志文件 以下步骤待定 搜索异常并将跟踪复制到另一个文件中 示例代码: public static void main(String[] args) { String host="hostname"; String user="sshuser&
public static void main(String[] args) {
String host="hostname";
String user="sshuser";
String password="sshpwd";
String command1="cd /usr/logs; view myLogs.log; ";
try{
java.util.Properties config = new java.util.Properties();
config.put("StrictHostKeyChecking", "no");
JSch jsch = new JSch();
Session session=jsch.getSession(user, host, 22);
session.setPassword(password);
session.setConfig(config);
session.connect();
System.out.println("Connected");
Channel channel=session.openChannel("exec");
((ChannelExec)channel).setCommand(command1);
channel.setInputStream(null);
((ChannelExec)channel).setErrStream(System.err);
InputStream in=channel.getInputStream();
channel.connect();
byte[] tmp=new byte[1024];
while(true){
while(in.available()>0){
int i=in.read(tmp, 0, 1024);
if(i<0)break;
System.out.print(new String(tmp, 0, i));
}
if(channel.isClosed()){
System.out.println("exit-status: "+channel.getExitStatus());
break;
}
try{Thread.sleep(1000);}catch(Exception ee){}
}
channel.disconnect();
session.disconnect();
System.out.println("Execution DONE");
}catch(Exception e){
e.printStackTrace();
}
}
publicstaticvoidmain(字符串[]args){
字符串host=“主机名”;
字符串user=“sshuser”;
字符串password=“sshpwd”;
String command1=“cd/usr/logs;查看myLogs.log;”;
试一试{
java.util.Properties config=new java.util.Properties();
配置放置(“检查”、“否”);
JSch JSch=新的JSch();
Session Session=jsch.getSession(用户,主机,22);
session.setPassword(密码);
session.setConfig(config);
session.connect();
System.out.println(“已连接”);
Channel=session.openChannel(“exec”);
((ChannelExec)channel.setCommand(command1);
channel.setInputStream(空);
((ChannelExec)channel.setErrStream(System.err);
InputStream in=channel.getInputStream();
channel.connect();
字节[]tmp=新字节[1024];
while(true){
while(in.available()>0){
inti=in.read(tmp,0,1024);
如果(这是一个需求列表。你有什么实际问题吗?到目前为止你做了什么?1.登录到Linux/Unix 2.打开日志文件目录3.打开上面的日志文件。事情已经完成,所以你的实际问题只是“给定一个打开的文件,我如何找到其中的所有堆栈跟踪”?将问题重点放在您需要帮助的实际细节上是很重要的。请使用该细节更新您的问题,并在您认为需要继续的地方添加一些代码。这是一个要求列表。您有任何实际问题吗?到目前为止您做了什么?1.登录到Linux/Unix 2.打开日志文件目录3.打开上面的日志文件ng已完成,因此您的实际问题只是“给定一个打开的文件,如何查找其中的所有StackTrace”?重要的是将问题集中在您需要帮助的实际细节上。请使用该细节更新您的问题,并在您认为需要继续的地方添加一些代码。