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.
VIPS/docs/용인 장애인 서버에서 관리 방법.md

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
```