用java把服务器某个目录日志实时打印出来

编程入门 行业动态 更新时间:2024-10-24 00:19:58

用java把服务器某个目录日志<a href=https://www.elefans.com/category/jswz/34/1771422.html style=实时打印出来"/>

用java把服务器某个目录日志实时打印出来

1.引入第三方包

<dependency><groupId>com.jcraft</groupId><artifactId>jsch</artifactId><version>0.1.55</version>
</dependency>

2.代码如下


import com.jcraft.jsch.ChannelExec;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.Session;import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;public class MySQLPortForwarding {public static void main(String[] args) throws Exception{String sshHost = ""; //服务器ipString sshUsername = ""; //用户名称String sshPassword = ""; //用户密码String remoteHost = "localhost";int localPort = 3307; // 本地端口int remotePort = 3306; // 远程MySQL服务器端口JSch jsch = new JSch();Session session = jsch.getSession(sshUsername, sshHost, 22);session.setPassword(sshPassword);session.setConfig("StrictHostKeyChecking", "no");System.out.println("建立SSH连接...");session.connect();/*  //这步是做端口转发的,与文章无关,目的:服务器安装的有mysql,然后防火墙没开3306,本地无法直接连接mysql,// 这一步本地可以用过localhost:3307连接服务器的mysqlint assignedPort = session.setPortForwardingL(localPort, remoteHost, remotePort);System.out.println("本地端口 " + assignedPort + " 被转发到 " + remoteHost + ":" + remotePort);*/String command = "tail -f " + "/tmp/debug.log";ChannelExec channel = (ChannelExec) session.openChannel("exec");channel.setCommand(command);InputStream in = channel.getInputStream();channel.connect();BufferedReader reader = new BufferedReader(new InputStreamReader(in));String line;while ((line = reader.readLine()) != null) {System.out.println(line); // 实时打印日志内容}channel.disconnect();session.disconnect();}}

更多推荐

用java把服务器某个目录日志实时打印出来

本文发布于:2023-11-15 11:49:26,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1599102.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:实时   打印出来   服务器   目录   日志

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!