오늘의 CHATGPT
nginx 무정지 로드밸런싱 교체.
고.니
2023. 7. 20. 23:42
반응형
/etc/nginx/conf.d 에 3개파일이 있어.
server-01.conf
server-02.conf
server-all.conf
reloadNginx.sh 01 이렇게 실행하면
server-01.conf 파일은 그대로고
나머지 파일은 뒤에 .bak 이 붙고
nginx를 reload하는 우분투 스크립트를 작성해줘
#!/bin/bash
if [ -z "$1" ]
then
echo "Please provide a parameter"
exit 1
fi
# /etc/nginx/conf.d 디렉토리로 이동
cd /etc/nginx/conf.d
# server-01.conf, server.conf, server-all.conf 중에서 입력받은 숫자에 해당하지 않는 파일을 찾아 .bak으로 이름 변경
for file in server-*.conf
do
if [[ "$file" != "server-$1.conf" ]]
then
mv "$file" "${file%.conf}.bak"
fi
done
# nginx를 reload
sudo service nginx reload
# 스크립트 종료
exit 0
이 상태에서 ./reloadNginx.sh 02 를 실행하면 02의 bak를 없애고 01은 bak를 붙여야해
#!/bin/bash
if [ -z "$1" ]
then
echo "Please provide a parameter"
exit 1
fi
# /etc/nginx/conf.d 디렉토리로 이동
cd /etc/nginx/conf.d
# server-*.conf 혹은 server-*.bak 중에서 입력받은 숫자에 해당하는 파일을 찾아 .conf로 이름 변경
if [ -f "server-$1.bak" ]
then
mv "server-$1.bak" "server-$1.conf"
fi
# server-*.conf 중에서 입력받은 숫자에 해당하지 않는 파일을 찾아 .bak으로 이름 변경
for file in server-*.conf
do
if [[ "$file" != "server-$1.conf" ]]
then
mv "$file" "${file%.conf}.bak"
fi
done
# nginx를 reload
sudo service nginx reload
# 스크립트 종료
exit 0
파라미터가 01, 02, all 이 셋중에 하나가 아니면 오류
#!/bin/bash
# 파라미터 값 확인
if [ "$1" != "01" ] && [ "$1" != "02" ] && [ "$1" != "all" ]
then
echo "Error: Parameter must be either '01', '02', or 'all'"
exit 1
fi
# /etc/nginx/conf.d 디렉토리로 이동
cd /etc/nginx/conf.d
# server-*.conf 혹은 server-*.bak 중에서 입력받은 숫자에 해당하는 파일을 찾아 .conf로 이름 변경
if [ -f "server-$1.bak" ]
then
mv "server-$1.bak" "server-$1.conf"
fi
# server-*.conf 중에서 입력받은 숫자에 해당하지 않는 파일을 찾아 .bak으로 이름 변경
for file in server-*.conf
do
if [[ "$file" != "server-$1.conf" ]]
then
mv "$file" "${file%.conf}.bak"
fi
done
# nginx를 reload
sudo service nginx reload
# 스크립트 종료
exit 0
반응형