본문 바로가기

dev/리눅스

shell script 작성

리눅스에서 shell script를 쓰는 이유는 서비스를 운영할 때 여러 명령어를 쓰는데

 

이에 필요한 명령어를 하나씩 호출하기 번거롭고 기억하기 어렵기 때문에 shell script를 쓰고 있습니다.

 

그동안 프로젝트하면서 주로 작성한 shell script를 예제로 리뷰하겠습니다.

(예제로 작성한 shell script입니다.)

 

shell script 예제

 

1번째 라인: 현재 접속한 서버의 IP 주소를 "IP"라는 변수에 저장

(hostname -I: 현재 접속한 서버 IP 조회 / cut -f 1 -d ' ': 앞의 IP 조회한 주소 중에 첫 번째 IP 추출)

 

2번째 라인: 현재 접속한 서버의 IP 주소를 출력

 

3번째 라인: shell script 실행할 때 전달한 파라미터 개수

 

5~8번째 라인: 파라미터 개수가 1개 이상인 경우 "yes parameter" 출력 및 첫 번째 파라미터 "IP"변수 저장

 

9~11번째 라인: 파라미터가 없는 경우 "no parameter" 출력

 

13~16번재 라인: 입력받은 파라미터 출력(주석 처리)

 

18번째 라인: /home/user 디렉토리에서 최대 내려갈 수 있는 레벨 1까지 기준으로 "globals.properties" 조회

(find /home/user -maxdepth 1 -name globals.properties)

globals.properties 파일에서 "localhost"라는 문자가 있으면 전부 "IP"로 수정, "{}"는 find로 찾은 파일 의미

(-exec sed -i -e "s/localhost/${IP}/g" {} \;)

 

20번째 라인: 현재 접속한 사용자 아이디 "USER"라는 변수에 저장

 

21번째 라인: docker 실행중인 프로세스 ID "PID"라는 변수에 저장

 

23~25번째 라인: docker 실행중인 프로세스 ID가 없으면 "docker is not active" 출력 및 docker 실행

 

26~28번째 라인: docker 실행중인 프로세스 ID가 있으면 "docker is active" 출력

 

30~34번째 라인: 현재 접속한 계정이 "root"인 경우 tomcat, nginx 재시작(sudo 생략)

 

35~40번째 라인: 현재 접속한 계정이 "root"가 아닌 경우 tomcat, nginx 재시작(sudo)

'dev > 리눅스' 카테고리의 다른 글

centos dns 설정  (0) 2022.09.27
리눅스 find 허가 거부  (0) 2022.07.12
파일 디렉토리 rwx 차이  (0) 2021.12.18
centos IP 확인  (0) 2021.10.22
centos 방화벽 포트 개방  (0) 2021.03.21