首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

Linux 部署運維核心命令速查:Tomcat 管理、日誌分析、軟鏈接與端口排查

     編輯:Java 綜合教學

前言

Java 應用 Linux 部署運維的高頻命令集,覆蓋進程管理、日誌實時查看、軟鏈接操作、端口佔用排查,附 Windows 端口排查對照,適合運維手冊收藏。

一、 Tomcat 進程管理

操作命令說明
查看進程ps -ef | grep tomcat顯示完整啟動參數、PID、用戶
優雅關閉./shutdown.sh在 Tomcat bin 目錄執行,觸發鉤子釋放資源
強制殺死kill -9 <PID>最後手段,-9 為 SIGKILL,不可捕獲
啟動後台nohup ./startup.sh > /dev/null 2>&1 &免掛起、輸出重定向、後台運行
查看啟動日誌tail -f logs/catalina.out實時跟蹤,Ctrl+C 退出跟蹤不關閉進程

二、 實時日誌分析技巧


# 最後 100 行
tail -n 100 logs/catalina.out

# 關鍵字過濾 (高亮)
tail -f logs/catalina.out | grep --color=auto "ERROR\|Exception"

# 多文件合併跟蹤
tail -f logs/catalina.out logs/localhost_access_log.*

# 保存最近錯誤
grep "ERROR" logs/catalina.out > /tmp/errors_$(date +%F).log

三、 軟鏈接 (符號鏈接) 操作規範


# 創建:ln -s 目標路徑 鏈接路徑
ln -s /home/gamestat /gamestat
# 效果:cd /gamestat 實際進入 /home/gamestat

# 關鍵規則:
# 1. 目標路徑 (源) 必須已存在
# 2. 鏈接路徑 (目標) 必須不存在 (父目錄需存在)
# 3. 使用絕對路徑,避免相對路徑在不同工作目錄下失效

# 刪除軟鏈接 (勿加斜杠!)
rm -rf /gamestat   # 正確:刪除鏈接文件本身
# rm -rf /gamestat/  # 錯誤:會遞歸刪除目標目錄內容!

# 查看鏈接詳情
ls -l /gamestat
# 輸出:lrwxrwxrwx 1 root root 14 Jan 1 10:00 /gamestat -> /home/gamestat

四、 端口佔用排查 (Linux & Windows)

Linux


# 查看端口佔用進程 (需 root 權限看所有)
netstat -tlnp | grep :8080
ss -tlnp | grep :8080   # 現代替代,更快

# 輸出示例:
# tcp LISTEN 0 100 :::8080 :::* users:(("java",pid=1234,fd=45))
# kill -9 1234

Windows


# 1. 查看端口佔用
netstat -ano | findstr :8080
# 輸出:TCP    0.0.0.0:8080    0.0.0.0:0    LISTENING    1234

# 2. 任務管理器 → 詳情 → PID 列 → 找到 1234 → 結束任務
# 或命令行強制結束
taskkill /PID 1234 /F

五、 常用組合拳:部署發布腳本模板


#!/bin/bash
# deploy.sh
APP_NAME=myapp
TOMCAT_HOME=/opt/tomcat
WAR_PATH=/home/deploy/${APP_NAME}.war

echo "=== 停止舊服務 ==="
PID=$(ps -ef | grep ${TOMCAT_HOME} | grep -v grep | awk '{print $2}')
[ -n "$PID" ] && kill -9 $PID && echo "Killed $PID"

echo "=== 備份舊版 ==="
[ -f ${TOMCAT_HOME}/webapps/${APP_NAME}.war ] && mv ${TOMCAT_HOME}/webapps/${APP_NAME}.war ${TOMCAT_HOME}/webapps/${APP_NAME}.war.bak.$(date +%F)

echo "=== 部署新版 ==="
cp ${WAR_PATH} ${TOMCAT_HOME}/webapps/

echo "=== 啟動服務 ==="
cd ${TOMCAT_HOME}/bin && nohup ./startup.sh > /dev/null 2>&1 &

echo "=== 等待啟動並驗證 ==="
sleep 10
tail -n 50 ${TOMCAT_HOME}/logs/catalina.out | grep -i "Server startup"

六、 總結

熟練掌握 ps/grep/kill/tail/ln/rm/netstat/ss/taskkill 等核心命令,構建標準化部署腳本,是 Java 開發者向 DevOps 邁進的必修課。
鐵律:
✅ 優雅關閉 > 強制殺死;
✅ 軟鏈接刪除 不加斜杠;
✅ 端口排查 ss 替代 netstat;
✅ 關鍵操作留存腳本,人工操作零信任。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved