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

1.引入第三方包

java 复制代码
<dependency>
    <groupId>com.jcraft</groupId>
    <artifactId>jsch</artifactId>
    <version>0.1.55</version>
</dependency>

2.代码如下

java 复制代码
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 = ""; //服务器ip
        String 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连接服务器的mysql
        int 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();
    }

}
相关推荐
熊大如如2 小时前
Java 反射
java·开发语言
Vone_662 小时前
node.js 邮箱验证服务器搭建
运维·服务器·node.js
猿来入此小猿3 小时前
基于SSM实现的健身房系统功能实现十六
java·毕业设计·ssm·毕业源码·免费学习·猿来入此·健身平台
丢丢丢丢丢丢~3 小时前
apache2的默认html修改
linux·运维·服务器
wusam3 小时前
Linux系统管理与编程20:Apache
linux·运维·服务器·apache·shell编程
teacher伟大光荣且正确3 小时前
Qt Creator 配置 Android 编译环境
android·开发语言·qt
goTsHgo3 小时前
Spring Boot 自动装配原理详解
java·spring boot
ChironW3 小时前
Ubuntu 24.04 LTS系统上配置国内时间同步
linux·运维·服务器·ubuntu
卑微的Coder3 小时前
JMeter同步定时器 模拟多用户并发访问场景
java·jmeter·压力测试
TPBoreas3 小时前
排查服务器内存空间预警思路
运维·服务器