리눅스에서 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 |