You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
253 lines
5.5 KiB
Markdown
253 lines
5.5 KiB
Markdown
# VIPS 서버 관리 가이드
|
|
|
|
## 목차
|
|
- [1. 서버 접속](#1-서버-접속)
|
|
- [1.1 최초 터미널 접속](#11-최초-터미널-접속)
|
|
- [1.2 root 계정 접속](#12-root-계정-접속)
|
|
- [1.3 xit 계정 접속](#13-xit-계정-접속)
|
|
- [2. MariaDB 접속](#2-mariadb-접속)
|
|
- [3. WAR 파일 배포](#3-war-파일-배포)
|
|
- [4. 애플리케이션 실행](#4-애플리케이션-실행)
|
|
- [4.1 소스 위치 정보](#41-소스-위치-정보)
|
|
- [4.2 직접 실행](#42-직접-실행)
|
|
- [4.3 백그라운드 실행](#43-백그라운드-실행)
|
|
- [4.4 백그라운드 프로세스 중지](#44-백그라운드-프로세스-중지)
|
|
- [5. Systemd 서비스 설정](#5-systemd-서비스-설정)
|
|
- [5.1 서비스 파일 설정](#51-서비스-파일-설정)
|
|
- [5.2 Systemd 명령어](#52-systemd-명령어)
|
|
- [6. MariaDB 데이터베이스 백업](#6-mariadb-데이터베이스-백업)
|
|
- [6.1 백업 디렉토리 생성](#61-백업-디렉토리-생성)
|
|
- [6.2 백업 스크립트 생성](#62-백업-스크립트-생성)
|
|
- [6.3 Crontab 설정 (매일 밤 12시 자동 백업)](#63-crontab-설정-매일-밤-12시-자동-백업)
|
|
- [6.4 백업 관련 명령어](#64-백업-관련-명령어)
|
|
|
|
---
|
|
|
|
## 1. 서버 접속
|
|
|
|
### 1.1 최초 터미널 접속
|
|
PuTTY를 이용하여 자동차 검사 서버에 접속합니다.
|
|
|
|
```bash
|
|
id: tune
|
|
password: dyddls12# # 한글명: 용인12#
|
|
```
|
|
|
|
### 1.2 root 계정 접속
|
|
|
|
```bash
|
|
su -
|
|
password: dyddls12# # 한글명: 용인12#
|
|
```
|
|
|
|
### 1.3 xit 계정 접속
|
|
|
|
```bash
|
|
su - xit
|
|
password: xit5811807
|
|
```
|
|
|
|
---
|
|
|
|
## 2. MariaDB 접속
|
|
리눅스 root 계정에서 실행합니다.
|
|
|
|
```bash
|
|
mysql -u vips -p -P 53306
|
|
password: xit5811807 # mariadb root 계정 비밀번호도 동일
|
|
```
|
|
|
|
```sql
|
|
use vips;
|
|
show tables;
|
|
```
|
|
|
|
---
|
|
|
|
## 3. WAR 파일 배포
|
|
Windows에서 Linux로 SCP를 이용하여 소스를 업로드합니다.
|
|
|
|
**Windows CMD에서 실행:**
|
|
```cmd
|
|
scp -P1922 c:\VIPS\VIPS-BOOT.war xit@105.19.10.124:/app/VIPS/
|
|
password: xit5811807
|
|
```
|
|
|
|
---
|
|
|
|
## 4. 애플리케이션 실행
|
|
리눅스 xit 계정에서 실행합니다.
|
|
|
|
### 4.1 소스 위치 정보
|
|
|
|
```bash
|
|
cd /app/VIPS/ # 애플리케이션 디렉토리
|
|
cd /app/VIPS/logs/ # 로그 디렉토리
|
|
```
|
|
|
|
### 4.2 직접 실행
|
|
실시간 로그 확인 가능, `Ctrl+C`로 즉시 중지
|
|
|
|
```bash
|
|
java -Dspring.profiles.active=prd -jar /app/VIPS/VIPS-BOOT.war
|
|
```
|
|
|
|
### 4.3 백그라운드 실행
|
|
|
|
```bash
|
|
nohup java -Dspring.profiles.active=prd -jar /app/VIPS/VIPS-BOOT.war > /dev/null 2>&1 &
|
|
```
|
|
|
|
### 4.4 백그라운드 프로세스 중지
|
|
|
|
```bash
|
|
# 프로세스 확인
|
|
ps -ef | grep VIPS
|
|
|
|
# PID 확인 후 종료
|
|
kill -9 [PID]
|
|
```
|
|
|
|
---
|
|
|
|
## 5. Systemd 서비스 설정
|
|
자동 재기동을 위한 systemd 서비스 설정입니다. **root 계정**에서 실행합니다.
|
|
|
|
### 5.1 서비스 파일 설정
|
|
|
|
```bash
|
|
vi /etc/systemd/system/vips.service
|
|
```
|
|
|
|
**서비스 파일 내용:**
|
|
```ini
|
|
[Unit]
|
|
Description=VIPS Spring Boot Application
|
|
After=network.target
|
|
# 600초(10분) 동안의 재시작 횟수를 카운트, 최대 5번까지만 재시작 시도
|
|
StartLimitIntervalSec=600
|
|
StartLimitBurst=5
|
|
|
|
[Service]
|
|
Type=simple
|
|
User=xit
|
|
Group=xit
|
|
WorkingDirectory=/app/VIPS
|
|
# ExecStart=/usr/lib/jvm/java-1.8.0-openjdk/bin/java -Xms512m -Xmx1024m -Dspring.profiles.active=prd -jar /app/VIPS/VIPS-BOOT.war
|
|
ExecStart=/usr/lib/jvm/java-1.8.0-openjdk/bin/java -Dspring.profiles.active=prd -jar /app/VIPS/VIPS-BOOT.war
|
|
# ExecStop=/bin/kill -15 $MAINPID
|
|
Restart=on-failure
|
|
RestartSec=10
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|
|
```
|
|
|
|
### 5.2 Systemd 명령어
|
|
|
|
```bash
|
|
# systemd 데몬 리로드 (서비스 파일 수정 후 실행)
|
|
systemctl daemon-reload
|
|
|
|
# 부팅 시 자동 시작 설정
|
|
systemctl enable vips
|
|
|
|
# 상태 확인
|
|
systemctl status vips
|
|
|
|
# 서비스 시작
|
|
systemctl start vips
|
|
|
|
# 서비스 중지
|
|
systemctl stop vips
|
|
|
|
# 서비스 재시작
|
|
systemctl restart vips
|
|
|
|
# 실시간 로그 확인
|
|
journalctl -u vips -f
|
|
```
|
|
|
|
---
|
|
|
|
## 6. MariaDB 데이터베이스 백업
|
|
**root 계정**에서 실행합니다.
|
|
|
|
### 6.1 백업 디렉토리 생성
|
|
|
|
```bash
|
|
mkdir -p /app/db/backup
|
|
chmod 755 /app/db/backup
|
|
```
|
|
|
|
### 6.2 백업 스크립트 생성
|
|
|
|
```bash
|
|
vi /app/db/backup/backup_vips.sh
|
|
```
|
|
|
|
**스크립트 내용:**
|
|
```bash
|
|
#!/bin/bash
|
|
|
|
# 백업 설정
|
|
BACKUP_DIR="/app/db/backup"
|
|
DB_NAME="vips"
|
|
DB_USER="vips"
|
|
DB_PASSWORD="xit5811807"
|
|
DB_PORT="53306"
|
|
DATE=$(date +%Y%m%d_%H%M%S)
|
|
BACKUP_FILE="${BACKUP_DIR}/${DB_NAME}_${DATE}.sql"
|
|
|
|
# 백업 실행
|
|
mysqldump -u ${DB_USER} -p${DB_PASSWORD} -P ${DB_PORT} ${DB_NAME} > ${BACKUP_FILE}
|
|
|
|
# 백업 파일 압축
|
|
gzip ${BACKUP_FILE}
|
|
|
|
# 30일 이상 된 백업 파일 삭제
|
|
find ${BACKUP_DIR} -name "${DB_NAME}_*.sql.gz" -type f -mtime +30 -delete
|
|
|
|
# 백업 결과 로그
|
|
if [ $? -eq 0 ]; then
|
|
echo "$(date '+%Y-%m-%d %H:%M:%S') - 백업 성공: ${BACKUP_FILE}.gz" >> ${BACKUP_DIR}/backup.log
|
|
else
|
|
echo "$(date '+%Y-%m-%d %H:%M:%S') - 백업 실패" >> ${BACKUP_DIR}/backup.log
|
|
fi
|
|
```
|
|
|
|
**실행 권한 부여:**
|
|
```bash
|
|
chmod 700 /app/db/backup/backup_vips.sh
|
|
```
|
|
|
|
### 6.3 Crontab 설정 (매일 밤 12시 자동 백업)
|
|
|
|
```bash
|
|
# crontab 편집
|
|
crontab -e
|
|
|
|
# 아래 내용 추가
|
|
0 0 * * * /app/db/backup/backup_vips.sh
|
|
```
|
|
|
|
### 6.4 백업 관련 명령어
|
|
|
|
```bash
|
|
# 수동 백업 실행
|
|
/app/db/backup/backup_vips.sh
|
|
|
|
# 백업 파일 목록 확인
|
|
ls -lh /app/db/backup/
|
|
|
|
# 백업 로그 확인
|
|
tail -f /app/db/backup/backup.log
|
|
|
|
# crontab 설정 확인
|
|
crontab -l
|
|
|
|
# 백업 복원 (필요시)
|
|
gunzip /app/db/backup/vips_20240101_000000.sql.gz
|
|
mysql -u vips -p -P 53306 vips < /app/db/backup/vips_20240101_000000.sql
|
|
```
|