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

5.5 KiB

VIPS 서버 관리 가이드

목차


1. 서버 접속

1.1 최초 터미널 접속

PuTTY를 이용하여 자동차 검사 서버에 접속합니다.

id: tune
password: dyddls12#  # 한글명: 용인12#

1.2 root 계정 접속

su -
password: dyddls12#  # 한글명: 용인12#

1.3 xit 계정 접속

su - xit
password: xit5811807

2. MariaDB 접속

리눅스 root 계정에서 실행합니다.

mysql -u vips -p -P 53306
password: xit5811807  # mariadb root 계정 비밀번호도 동일
use vips;
show tables;

3. WAR 파일 배포

Windows에서 Linux로 SCP를 이용하여 소스를 업로드합니다.

Windows CMD에서 실행:

scp -P1922 c:\VIPS\VIPS-BOOT.war xit@105.19.10.124:/app/VIPS/
password: xit5811807

4. 애플리케이션 실행

리눅스 xit 계정에서 실행합니다.

4.1 소스 위치 정보

cd /app/VIPS/          # 애플리케이션 디렉토리
cd /app/VIPS/logs/     # 로그 디렉토리

4.2 직접 실행

실시간 로그 확인 가능, Ctrl+C로 즉시 중지

java -Dspring.profiles.active=prd -jar /app/VIPS/VIPS-BOOT.war

4.3 백그라운드 실행

nohup java -Dspring.profiles.active=prd -jar /app/VIPS/VIPS-BOOT.war > /dev/null 2>&1 &

4.4 백그라운드 프로세스 중지

# 프로세스 확인
ps -ef | grep VIPS

# PID 확인 후 종료
kill -9 [PID]

5. Systemd 서비스 설정

자동 재기동을 위한 systemd 서비스 설정입니다. root 계정에서 실행합니다.

5.1 서비스 파일 설정

vi /etc/systemd/system/vips.service

서비스 파일 내용:

[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 명령어

# 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 백업 디렉토리 생성

mkdir -p /app/db/backup
chmod 755 /app/db/backup

6.2 백업 스크립트 생성

vi /app/db/backup/backup_vips.sh

스크립트 내용:

#!/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

실행 권한 부여:

chmod 700 /app/db/backup/backup_vips.sh

6.3 Crontab 설정 (매일 밤 12시 자동 백업)

# crontab 편집
crontab -e

# 아래 내용 추가
0 0 * * * /app/db/backup/backup_vips.sh

6.4 백업 관련 명령어

# 수동 백업 실행
/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