亿赛通脚本远程调试配置技巧

要进行远程调试,主要是对 TomcatJava进程 进行调试。以下是针对该系统的远程调试配置方法:

一、Tomcat远程调试配置

1. 修改Tomcat启动脚本

找到Tomcat的启动脚本(通常在/esafenet/tomcat/bin/catalina.shstartup.sh):

bash 复制代码
# 在catalina.sh中JAVA_OPTS配置部分添加调试参数
JAVA_OPTS="$JAVA_OPTS -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005"

或者直接在启动命令中添加:

bash 复制代码
./catalina.sh jpda start

2. 使用JPDA启动(推荐)

修改/esafenet/tomcat/bin/catalina.sh

bash 复制代码
# 查找JPDA相关配置,通常在文件开头附近
JPDA_ADDRESS="5005"
JPDA_TRANSPORT="dt_socket"

然后在启动时使用:

bash 复制代码
export JPDA_OPTS="-agentlib:jdwp=transport=dt_socket,address=0.0.0.0:5005,server=y,suspend=n"
./catalina.sh jpda start

3. 在checkProcessAlive.sh中修改启动方式

如果您希望通过守护进程保持调试模式,可以修改脚本中的Tomcat启动部分:

bash 复制代码
check_tomcat()
{
    if [ -d $tomcat ]
    then
        sleep 10
        tomcatpid=$(ps -ef | grep tomcat|grep -v grep |wc -l)
        
        if [ $tomcatpid -eq 0 ] 
        then
            echo "============Tomcat has been closed. Now start the Tomcat program with debug" >> $LOGFILE
            cd $tomcat
            
            # 添加调试参数启动
            export CATALINA_OPTS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005"
            ./startup.sh >$DEV_NULL 2>&1
            
            # 或者使用JPDA模式
            # ./catalina.sh jpda start >$DEV_NULL 2>&1
            
            sleep 3
        else
            echo "======Tomcat is running normally" >> $LOGFILE
        fi
    fi
}

二、其他Java进程调试

1. Logstash调试

修改logstash启动部分:

bash 复制代码
# 在check_logstash函数中修改
nohup $LOGSTASH_DIR_NEW/bin/logstash -f $LOGSTASH_DIR_NEW/config/log_logstash_es_company_linux.conf \
-J-Djruby.debug=true \
--log.level debug >$DEV_NULL 2>&1 &

2. Elasticsearch调试

bash 复制代码
# 在check_es函数中修改
su - $EST_USER -c "/esafenet/elasticsearch/bin/elasticsearch -d \
-Enetwork.host=0.0.0.0 \
-Etransport.tcp.port=9300 \
-Ehttp.port=9200 \
-Enetwork.tcp.keep_alive=true"

三、IDE连接配置

IntelliJ IDEA配置

  1. Run → Edit Configurations

  2. Add New Configuration → Remote JVM Debug

  3. 配置参数:

    复制代码
    Host: <服务器IP>
    Port: 5005
    Command line arguments: 保持默认

Eclipse配置

  1. Run → Debug Configurations

  2. Remote Java Application → New

  3. 配置:

    复制代码
    Host: <服务器IP>
    Port: 5005
    Connection Type: Standard (Socket Attach)

四、防火墙配置

确保调试端口开放:

bash 复制代码
# 开放5005端口
firewall-cmd --zone=public --add-port=5005/tcp --permanent
firewall-cmd --reload

# 或者临时开放
iptables -A INPUT -p tcp --dport 5005 -j ACCEPT

五、调试建议和注意事项

生产环境调试

  1. 安全考虑:生产环境慎用远程调试,建议:

    • 在测试环境调试
    • 使用VPN访问
    • 调试后立即关闭端口
  2. 性能影响

    • 调试模式会降低性能
    • 建议设置suspend=n(不挂起启动)

调试脚本创建

您可以创建一个专门的调试启动脚本:

/esafenet/bin/start_debug.sh

bash 复制代码
#!/bin/bash

# 停止当前服务
/esafenet/bin/stop_all.sh

# 设置调试环境变量
export JAVA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005"
export CATALINA_OPTS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005"

# 按顺序启动各服务(带调试)
check_mysql
check_es
sleep 5
check_tomcat
check_logstash

常用调试命令

bash 复制代码
# 查看调试端口监听
netstat -tlnp | grep 5005

# 查看Java进程调试参数
ps -ef | grep java | grep jdwp

# 测试端口连通性
telnet <server_ip> 5005

六、故障排除

  1. 连接拒绝

    • 检查防火墙
    • 确认Tomcat已启动调试模式
    • 检查IP地址是否正确
  2. 连接超时

    • 检查网络连通性
    • 确认端口未被占用
  3. 调试不生效

    • 重启Tomcat使配置生效
    • 检查JAVA_OPTS是否正确设置

注意:在进行远程调试前,请确保:

  1. 有相应的系统权限
  2. 了解调试对系统的影响
  3. 生产环境调试需谨慎,建议先在测试环境验证
  4. 调试完成后恢复原配置
相关推荐
不愿是过客20 小时前
java实战干货——长方法深递归
java
小北方城市网21 小时前
Redis 分布式锁高可用实现:从原理到生产级落地
java·前端·javascript·spring boot·redis·分布式·wpf
六义义1 天前
java基础十二
java·数据结构·算法
毕设源码-钟学长1 天前
【开题答辩全过程】以 基于SpringBoot的智能书城推荐系统的设计与实现为例,包含答辩的问题和答案
java·spring boot·后端
笨手笨脚の1 天前
深入理解 Java 虚拟机-03 垃圾收集
java·jvm·垃圾回收·标记清除·标记复制·标记整理
莫问前路漫漫1 天前
WinMerge v2.16.41 中文绿色版深度解析:文件对比与合并的全能工具
java·开发语言·python·jdk·ai编程
九皇叔叔1 天前
【03】SpringBoot3 MybatisPlus BaseMapper 源码分析
java·开发语言·mybatis·mybatis plus
挖矿大亨1 天前
c++中的函数模版
java·c++·算法
a程序小傲1 天前
得物Java面试被问:RocketMQ的消息轨迹追踪实现
java·linux·spring·面试·职场和发展·rocketmq·java-rocketmq
青春男大1 天前
Redis和RedisTemplate快速上手
java·数据库·redis·后端·spring·缓存