203 lines
6.2 KiB
Bash
203 lines
6.2 KiB
Bash
#!/bin/bash
|
|
# 원격 서버 환경 진단 스크립트
|
|
# SSH로 접속한 후 이 스크립트를 실행하여 환경 정보를 수집합니다.
|
|
|
|
echo "═══════════════════════════════════════════════════════════════"
|
|
echo " 원격 서버 환경 진단"
|
|
echo "═══════════════════════════════════════════════════════════════"
|
|
echo ""
|
|
|
|
# 1. 네트워크 정보
|
|
echo "1️⃣ 네트워크 정보"
|
|
echo "───────────────────────────────────────────────────────────────"
|
|
echo "공인 IP (외부에서 접속 가능):"
|
|
curl -s https://api.ipify.org
|
|
echo ""
|
|
|
|
echo "내부 IP 목록:"
|
|
ip addr show | grep -E "inet |inet6 " | grep -v "127.0.0.1"
|
|
echo ""
|
|
|
|
echo "호스트명:"
|
|
hostname
|
|
echo ""
|
|
|
|
echo "네트워크 인터페이스:"
|
|
ip link show | grep -E "^[0-9]+:|UP|DOWN"
|
|
echo ""
|
|
|
|
# 2. 디렉토리 구조
|
|
echo "2️⃣ 웹 서버 디렉토리 구조"
|
|
echo "───────────────────────────────────────────────────────────────"
|
|
|
|
# /var/www 확인
|
|
if [ -d /var/www ]; then
|
|
echo "✓ /var/www 존재"
|
|
ls -la /var/www/ | head -20
|
|
else
|
|
echo "✗ /var/www 없음"
|
|
fi
|
|
echo ""
|
|
|
|
# /var/www/quant 확인
|
|
if [ -d /var/www/quant ]; then
|
|
echo "✓ /var/www/quant 존재"
|
|
ls -la /var/www/quant/
|
|
du -sh /var/www/quant/*
|
|
else
|
|
echo "✗ /var/www/quant 없음"
|
|
fi
|
|
echo ""
|
|
|
|
# /var/www/quant/publish 확인
|
|
if [ -d /var/www/quant/publish ]; then
|
|
echo "✓ /var/www/quant/publish 존재"
|
|
ls -la /var/www/quant/publish/ | head -10
|
|
du -sh /var/www/quant/publish
|
|
else
|
|
echo "✗ /var/www/quant/publish 없음 (첫 배포)"
|
|
fi
|
|
echo ""
|
|
|
|
# 3. Nginx 설정
|
|
echo "3️⃣ Nginx 설정"
|
|
echo "───────────────────────────────────────────────────────────────"
|
|
|
|
if command -v nginx &> /dev/null; then
|
|
echo "✓ Nginx 설치됨"
|
|
nginx -v
|
|
echo ""
|
|
|
|
echo "Nginx 설정 파일 위치:"
|
|
nginx -T 2>/dev/null | grep "configuration file" | head -1
|
|
echo ""
|
|
|
|
echo "Nginx 실행 사용자:"
|
|
ps aux | grep nginx | grep -v grep | head -1
|
|
echo ""
|
|
|
|
echo "/quant 관련 설정:"
|
|
cat /etc/nginx/sites-available/default 2>/dev/null | grep -A 10 -B 2 "quant" || echo "quant 관련 설정 없음"
|
|
echo ""
|
|
else
|
|
echo "✗ Nginx 미설치"
|
|
fi
|
|
|
|
echo ""
|
|
|
|
# 4. 웹 서버 권한
|
|
echo "4️⃣ 파일 권한 및 소유자"
|
|
echo "───────────────────────────────────────────────────────────────"
|
|
|
|
echo "웹 서버 사용자:"
|
|
ps aux | grep -E "nginx|apache" | grep -v grep | head -1 | awk '{print $1}' || echo "확인 필요"
|
|
echo ""
|
|
|
|
echo "/var/www 권한:"
|
|
ls -ld /var/www
|
|
echo ""
|
|
|
|
if [ -d /var/www/quant ]; then
|
|
echo "/var/www/quant 권한:"
|
|
ls -ld /var/www/quant
|
|
echo ""
|
|
fi
|
|
|
|
if [ -d /var/www/quant/publish ]; then
|
|
echo "/var/www/quant/publish 권한:"
|
|
ls -ld /var/www/quant/publish
|
|
echo ""
|
|
fi
|
|
|
|
echo ""
|
|
|
|
# 5. 포트 상태
|
|
echo "5️⃣ 포트 상태"
|
|
echo "───────────────────────────────────────────────────────────────"
|
|
|
|
netstat -tuln 2>/dev/null | grep -E "^Proto|:80|:443" || ss -tuln | grep -E "LISTEN|:80|:443"
|
|
echo ""
|
|
|
|
echo ""
|
|
|
|
# 6. 시스템 정보
|
|
echo "6️⃣ 시스템 정보"
|
|
echo "───────────────────────────────────────────────────────────────"
|
|
|
|
echo "OS:"
|
|
uname -a
|
|
echo ""
|
|
|
|
echo "Linux 배포판:"
|
|
lsb_release -a 2>/dev/null || cat /etc/os-release | head -3
|
|
echo ""
|
|
|
|
echo "디스크 공간:"
|
|
df -h | grep -E "^/dev|Filesystem"
|
|
echo ""
|
|
|
|
echo ""
|
|
|
|
# 7. Sudo 권한
|
|
echo "7️⃣ 현재 사용자 정보"
|
|
echo "───────────────────────────────────────────────────────────────"
|
|
|
|
echo "현재 사용자:"
|
|
whoami
|
|
echo ""
|
|
|
|
echo "사용자 그룹:"
|
|
groups
|
|
echo ""
|
|
|
|
echo "Sudo 권한:"
|
|
sudo -l 2>/dev/null | grep -E "NOPASSWD|nginx|systemctl" || echo "sudo 권한 확인 필요"
|
|
echo ""
|
|
|
|
echo ""
|
|
|
|
# 8. Git/Gitea 정보
|
|
echo "8️⃣ Git/Gitea 정보"
|
|
echo "───────────────────────────────────────────────────────────────"
|
|
|
|
if command -v git &> /dev/null; then
|
|
echo "✓ Git 설치됨"
|
|
git --version
|
|
else
|
|
echo "✗ Git 미설치"
|
|
fi
|
|
echo ""
|
|
|
|
if command -v gitea &> /dev/null; then
|
|
echo "✓ Gitea 설치됨"
|
|
gitea -v
|
|
else
|
|
echo "✗ Gitea 미설치"
|
|
fi
|
|
echo ""
|
|
|
|
if [ -d /var/lib/gitea ] || [ -d /home/git/gitea-repositories ]; then
|
|
echo "Gitea 데이터 위치:"
|
|
[ -d /var/lib/gitea ] && echo " /var/lib/gitea"
|
|
[ -d /home/git/gitea-repositories ] && echo " /home/git/gitea-repositories"
|
|
else
|
|
echo "Gitea 데이터 위치: 확인 필요"
|
|
fi
|
|
echo ""
|
|
|
|
echo ""
|
|
|
|
echo "═══════════════════════════════════════════════════════════════"
|
|
echo "✅ 진단 완료"
|
|
echo "═══════════════════════════════════════════════════════════════"
|
|
echo ""
|
|
echo "위 정보를 바탕으로 배포 스크립트를 업데이트합니다."
|
|
echo ""
|
|
echo "특히 확인할 사항:"
|
|
echo " 1. 내부 IP 주소 (172로 시작하는 IP)"
|
|
echo " 2. /var/www/quant 경로 (또는 다른 경로?)"
|
|
echo " 3. 웹 서버 사용자 (www-data? nobody? 다른 사용자?)"
|
|
echo " 4. Nginx 설정 파일 위치"
|
|
echo " 5. /quant에 대한 nginx 설정"
|
|
echo ""
|