|
77 | 77 | sleep 10 |
78 | 78 | done |
79 | 79 |
|
80 | | -echo "> Nginx 상태 확인" |
81 | | -if ! sudo systemctl is-active --quiet nginx; then |
82 | | - echo "> Nginx가 중지되어 있습니다. 재시작합니다." |
83 | | - sudo systemctl start nginx |
84 | | - sleep 2 |
85 | | - if sudo systemctl is-active --quiet nginx; then |
86 | | - echo "> Nginx 재시작 성공" |
87 | | - else |
88 | | - echo "> Nginx 재시작 실패. 상태:" |
89 | | - sudo systemctl status nginx |
90 | | - fi |
| 80 | +echo "> Nginx 상태 확인 및 복구" |
| 81 | +sudo systemctl stop nginx 2>/dev/null || true |
| 82 | +sleep 1 |
| 83 | +sudo systemctl start nginx |
| 84 | +sleep 2 |
| 85 | +if sudo systemctl is-active --quiet nginx; then |
| 86 | + echo "> Nginx 시작 성공" |
91 | 87 | else |
92 | | - echo "> Nginx 정상 구동 중" |
| 88 | + echo "> Nginx 시작 실패. 강제 재시작 시도..." |
| 89 | + sudo killall nginx 2>/dev/null || true |
| 90 | + sleep 1 |
| 91 | + sudo nginx |
| 92 | + sleep 2 |
93 | 93 | fi |
94 | 94 |
|
| 95 | +echo "> 방화벽 규칙 초기화 (인바운드 트래픽 허용)" |
| 96 | +# UFW 비활성화 |
| 97 | +sudo ufw disable 2>/dev/null || true |
| 98 | + |
| 99 | +# iptables 초기화 - 모든 트래픽 허용 |
| 100 | +sudo iptables -P INPUT ACCEPT 2>/dev/null || true |
| 101 | +sudo iptables -P FORWARD ACCEPT 2>/dev/null || true |
| 102 | +sudo iptables -P OUTPUT ACCEPT 2>/dev/null || true |
| 103 | +sudo iptables -F 2>/dev/null || true |
| 104 | +sudo iptables -X 2>/dev/null || true |
| 105 | + |
95 | 106 | echo "> 스위칭" |
96 | 107 | sleep 10 |
97 | 108 | /home/ubuntu/app/nonstop/switch.sh |
98 | 109 |
|
99 | | -echo "> 배포 완료. 진단 정보 수집 중..." |
100 | | - |
101 | | -DIAG_FILE="/tmp/server-diagnostic-$(date +%Y%m%d-%H%M%S).txt" |
102 | | -{ |
103 | | - echo "========== SERVER DIAGNOSTIC ==========" |
104 | | - echo "Date: $(date)" |
105 | | - echo "" |
106 | | - |
107 | | - echo "=== Public IP (EC2 metadata) ===" |
108 | | - curl -s --connect-timeout 3 http://169.254.169.254/latest/meta-data/public-ipv4 2>/dev/null || echo "메타데이터 접근 불가" |
109 | | - echo "" |
110 | | - |
111 | | - echo "=== Network Interfaces ===" |
112 | | - ip addr show 2>/dev/null || ifconfig 2>/dev/null |
113 | | - echo "" |
114 | | - |
115 | | - echo "=== Nginx Status ===" |
116 | | - sudo systemctl status nginx 2>&1 |
117 | | - echo "" |
118 | | - |
119 | | - echo "=== Nginx Config ===" |
120 | | - sudo nginx -T 2>&1 |
121 | | - echo "" |
122 | | - |
123 | | - echo "=== Listening Ports ===" |
124 | | - sudo ss -tlnp 2>/dev/null || sudo netstat -tlnp 2>/dev/null |
125 | | - echo "" |
126 | | - |
127 | | - echo "=== Java Processes ===" |
128 | | - pgrep -a java 2>/dev/null || echo "Java 프로세스 없음" |
129 | | - echo "" |
130 | | - |
131 | | - echo "=== iptables Rules ===" |
132 | | - sudo iptables -L -n 2>/dev/null || echo "iptables 조회 실패" |
133 | | - echo "" |
134 | | - |
135 | | - echo "=== Localhost Health Check ===" |
136 | | - curl -s http://localhost:8081/actuator/health 2>/dev/null |
137 | | - echo "" |
138 | | - curl -s http://localhost:8082/actuator/health 2>/dev/null |
139 | | - echo "" |
140 | | - curl -s http://localhost/actuator/health 2>/dev/null |
141 | | - echo "" |
142 | | - curl -s http://localhost/profile 2>/dev/null |
143 | | - echo "" |
144 | | - |
145 | | - echo "=== Disk Usage ===" |
146 | | - df -h 2>/dev/null |
147 | | - echo "" |
148 | | - |
149 | | - echo "=== Memory Usage ===" |
150 | | - free -h 2>/dev/null |
151 | | - echo "" |
152 | | - |
153 | | - echo "=== nohup.out (last 50 lines) ===" |
154 | | - tail -50 /home/ubuntu/app/nohup.out 2>/dev/null || echo "nohup.out 없음" |
155 | | - echo "" |
156 | | - |
157 | | - echo "========== END DIAGNOSTIC ==========" |
158 | | -} > "$DIAG_FILE" 2>&1 |
159 | | - |
160 | | -echo "> 진단 결과를 S3에 업로드..." |
161 | | -aws s3 cp "$DIAG_FILE" s3://runnect-prod-bucket/diagnostics/$(basename "$DIAG_FILE") 2>&1 || echo "> S3 업로드 실패" |
162 | | - |
163 | | -echo "> 진단 완료" |
| 110 | +echo "> 배포 완료" |
0 commit comments