오늘의 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
반응형