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

J2EE 開發者必備 Linux 實戰技能:指令、腳本、監控與部署自動化

     編輯:Java 相關知識

核心指令速查表 (按使用頻率分組)

類別指令常用參數/範例用途
檔案/目錄ls-lh, -lt (依時間)列出檔案、大小、權限
cdcd - (回上層), cd ~切換目錄
cp/mv/rm-r 遞迴, -f 強制, -i 互動複製/移動/刪除
chmod/chownchmod 755, chown user:group權限/擁有者管理
findfind /var/log -name "*.log" -mtime +7 -delete條件查找/清理舊日誌
tartar -czf app.tar.gz /opt/app, -xzf 解壓打包/解壓
檢視/搜尋tail-f 即時追蹤, -n 200看日誌神器
grep-r "ERROR" /app/logs, -i 忽略大小寫, -A 5 -B 5 上下文內容搜尋
wc-l 行數統計日誌行數
cat/less/moreless +F 類 tail -f 但可捲動檢視大檔案
type/whichtype java確認命令來源
進程/系統psaux, ef, ps -ef | grep java進程快照
top/htoptop -p $(pgrep -d',' java)即時 CPU/記憶體監控
kill/killallkill -9 <PID>, killall -9 java強制終止
df/dudf -h 磁碟, du -sh /var/log 目錄大小空間監控
w/uptimeload average > CPU 核心數 表示過載系統負載快速判斷
網路/遠端scp/rsyncscp target.war user@host:/opt/deploy/檔案傳輸/同步部署
wget/curlcurl -I https://host/health健康檢查/下載
netstat/ssss -tlnp | grep :8080端口佔用檢查
sshssh -i key.pem user@host遠端登入

Shell 腳本實戰模板 (部署/監控/備份)

#!/bin/bash
# deploy.sh - 簡單 WAR 部署腳本
set -euo pipefail
WAR_PATH="/opt/build/target.war"
DEPLOY_DIR="/opt/tomcat/webapps"
BACKUP_DIR="/opt/backup/$(date +%F_%H%M)"

mkdir -p "$BACKUP_DIR"
# 備份舊版
[ -f "$DEPLOY_DIR/ROOT.war" ] && mv "$DEPLOY_DIR/ROOT.war" "$BACKUP_DIR/"
# 部署新版
cp "$WAR_PATH" "$DEPLOY_DIR/ROOT.war"
# 重啟 Tomcat (假設用 systemd)
systemctl restart tomcat
# 健康檢查
for i in {1..30}; do
    if curl -sf https://localhost:8080/health >/dev/null; then
        echo "Deploy OK"
        exit 0
    fi
    sleep 2
done
echo "Deploy FAILED: health check timeout"
exit 1

關鍵腳本撰寫守則

  • set -euo pipefail:遇錯即停、未定義變數報錯、管線任一失敗即失敗。
  • 變數引用 **務必加雙引號** "$VAR",防止空格/換行拆分。
  • 單引號 ' 不展開變數,反引號 ` / $() 執行命令替換。
  • 定時任務用 crontab -e,記得寫絕對路徑、導向日誌:0 */6 * * * /opt/scripts/check_disk.sh >> /var/log/disk.log 2>&1。
  • 善用 awk/sed 處理結構化日誌:awk '$9 ~ /500/ {print $1, $7}' access.log。

生產環境監控清單 (可納入腳本/Prometheus/Node Exporter)

指標警告閾值檢查指令/方式
磁碟使用率> 85%df -h | awk '$5+0 > 85 {print $6, $5}'
記憶體可用< 10%free -m | awk '/Mem:/ {print $7}'
CPU Load (1min)> 核心數 * 2uptime | awk -F'load average:' '{print $2}' | awk '{print $1}'
Java Heap 使用率> 85%JMX / jstat -gcutil <PID> / Prometheus JMX Exporter
Tomcat 執行緒池使用率 > 90%JMX / Manager App / Actuator
資料庫連線池使用率 > 90%HikariCP MBean / Druid StatView
應用健康端點非 200curl -f https://host:port/actuator/health

軟體安裝標準流程 (源碼編譯)

./configure --prefix=/opt/nginx --with-http_ssl_module
make -j$(nproc)
make install
# 建議製作 RPM/DEB 或 Docker Image 實現不可變部署
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved