일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 배열
- 백트래킹
- 완전탐색
- SQL
- 빅데이터
- Stack
- DP
- 아스키코드
- 브루트포스
- 새벽코딩
- HashMap
- BufferedReader
- 문자열
- 백준
- dfs
- 알고리즘
- 그리디
- 탐색
- 스택
- 시뮬레이션
- 다이나믹프로그래밍
- 다리 만들기
- Python
- 구현
- BFS
- LIS
- Queue
- oracle
- 프로그래머스
- Java
Archives
- Today
- Total
새벽코딩
[Shell] war 배포 및 서버 재기동 sh 본문
반응형
Jeus서버에 개발서버를 구축하고 소스배포를 위한 shell script 작성이 필요했다. 관리자 서버, 사용자 서버별 각각 배포 파이프라인을 만들고 서버를 재기동 할 수 있는 스크립트까지 만들어보는게 이번 포스팅의 목적이다.
1. 소스 배포 스크립트
#!/bin/bash
#init
deploy_dir="/app/service/was/service.war/WEB-INF"
source_dir="/app/local/dev/war"
backup_dir="$source_dir/backup"
timestamp=$(date +"%Y%m%d%H%M%S")
#check backup directory
if [ ! -d "$backup_dir" ]; then
mkdir -p "$backup_dir"
echo "create backup directory: $backup_dir"
fi
#copy backup directory
cp -r "$deploy_dir/classes" "$backup_dir"
mv "$backup_dir/classes" "$backup_dir/classes_$timestamp"
#check backup
if [ $? -eq 0 ]; then
echo "backup complete: $deploy_dir/classes -> $backup_dir"
cd "$source_dir"
jar xvf service.war
cd "$source_dir/WEB-INF"
rm -rf "$deploy_dir/classes"
cp -r ./classes "$deploy_dir"
fi
2. 서버 종료 및 재기동
#!/bin/bash
#init
ip="10.123.111.5"
port=3000
MAX_CNT=10
SLEEP_INTERVAL=0.5
shutdown server
for ((i=1; i<=MAX_CNT; i++)); do
echo "[$(date)] Shutdown Test $i/$MAX_CNT: $port PORT"
if nc -z -w 1 $ip $port >/dev/null 2>&1; then
current_status="open"
else
current_status="closed"
fi
echo "Current Status: $current_status"
if [[ "$current_status" == "closed" ]]; then
echo "[$(date)] The $port is closed"
reboot server
break
fi
sleep $SLEEP_INTERVAL
done
echo "$port: The port check is completed.."
3. 두 스크립트를 묶을 shell script
#!/bin/bash
GREEN='\033[0;32m'
RED='\033[0;31m'
YELLOW='\033[0;33m'
NONE='\033[0m'
print_status() {
echo -e "${1}${2}${NONE}"
}
print_divider() {
echo -e "${YELLOW}======================================================${NONE}"
}
print_divider
print_status "$YELLOW" "Deploy Script is starting..."
print_divider
./deploy.sh
print_status "$GREEN" "Service Wait 3Sec..."
sleep 3
print_divider
print_status "$YELLOW" "Service Shutdown and Reboot..."
print_divider
./server_reboot.sh
print_status "$GREEN" "All Process is Completed..!"
이로서 개발 소스 서버 배포 및 서버 종료 재기동 스크립트를 구성해보았습니다.
감사합니다.
반응형
'생각정리' 카테고리의 다른 글
대용량 트래픽 핸들링 및 대용량 파일업로드 (0) | 2023.10.03 |
---|---|
[배치 명령어] 데몬서버 배치 실행시 사용 명령어 (0) | 2023.05.15 |
[LIS] 최장 증가 부분 수열(Longest Increasing Subsequence) (0) | 2023.05.15 |
[Eclipse] 이클립스 세팅시 마주한 에러들 (0) | 2023.04.05 |
[github] github을 사용하는 2가지 방법 (0) | 2023.03.29 |