#!/usr/bin/env bash # ITMS 설치 사전 점검 (읽기 전용). 실패해도 설치를 막지 않으나 경고를 남긴다. set -u echo "== ITMS preflight ==" # JDK17 if command -v javac >/dev/null 2>&1 && javac -version 2>&1 | grep -q ' 17'; then echo "[OK] JDK17 (javac): $(javac -version 2>&1)" elif ls /usr/lib/jvm/ 2>/dev/null | grep -qi 'java-17'; then echo "[OK] JDK17 설치 경로 존재: $(ls -d /usr/lib/jvm/*17* 2>/dev/null | head -1)" else echo "[WARN] JDK17 미검출 — 'apt-get install -y openjdk-17-jdk' 또는 'dnf install -y java-17-openjdk-devel'" fi # systemd command -v systemctl >/dev/null 2>&1 && echo "[OK] systemd 존재" || echo "[WARN] systemd 미검출" # disk avail=$(df -Pm /opt 2>/dev/null | awk 'NR==2{print $4}'); echo "[INFO] /opt 여유: ${avail:-?} MB (권장 2000+)" # mem mem=$(free -m 2>/dev/null | awk '/Mem:/{print $2}'); echo "[INFO] 총 메모리: ${mem:-?} MB (권장 4096+)" # DB 포트 도달성(선택; 인자로 host:port 전달) for hp in "$@"; do h=${hp%:*}; p=${hp#*:} timeout 4 bash -c "echo > /dev/tcp/$h/$p" 2>/dev/null && echo "[OK] DB 도달 $hp" || echo "[WARN] DB 미도달 $hp (api/batch 기동 전 필요)" done echo "== preflight 완료 =="