올챙이시절 기록소

Shell Script 초급과정 ( feat. rtsctl ) 본문

2015/12월

Shell Script 초급과정 ( feat. rtsctl )

allroundplayer 2017. 10. 19. 17:41

Shell Script 입문과정  ( feat. Oracle 자동설치 스크립트 ) 편에 이어서 작성한다


오라클 자동설치 스크립트를 작성하면서


리눅스에 대한 이해와 사용할 수 있는 명령어의 폭이 늘었을 것이라 기대한다




2년 반정도 쉘을 작성하면서 느낀 바가 있다


쉘은 크게 두 가지로 분류 된다는 것이다


1. Install 쉘


2. 컨트롤러 (ctl)  쉘


( 물론 시간이 지나면서 생각은 변하겠지만 지금은 그렇다 )


ORACLE 자동설치 스크립트는 일종의 Install 쉘 이니 이번엔 컨트롤러 쉘에 대해서 알아 볼차례다




2015년 12월 PJS ( PlatformJS )를 제어하는 쉘을 작성하게 되었는데


어떻게 만드는지 알기 위해 RTS 컨트롤러 쉘을 이틀동안 분석하였다


rtsctl


실력이 비약적으로 늘었다, 쉘로도 이만큼 할 수 있구나라는 것을 배웠다


( 2년간 장인정신의 가르침을 두 번 받았는데 이것이 첫 번째였다 )


그 이유를 열거하면


1. HP-UX, Solaris, Aix, Linux 모두 호환되게 작성하였다 ( 03년 7월 부터 15년간 잘 작동한 ) 

( Unix, Linux  모두 호환되게 작성 하는 것이 정말 어렵다)


2. 함수를 사용하였고 함수명(ex - GET_TARGET_CONF_LIST)을 잘 지어 이해가 쉽다

( 영어도 필히 잘하시는 분이었을 것이다 )


3. 깔끔한 로직


4. 함수, 상수와 변수에 따라 Naming에 표준 규칙을 맞추었다

( 함수, 상수 : 대문자 / 변수 소문자 )


5. 예약 변수를 잘 활용하였다


6. 깔끔한 들여쓰기


개인적으로는 전율이 있었다 그런 느낌을 같이 받았으면 좋겠다




여튼, 초급수준이 되기 위한 두 번째 과제이다


Linux에 PostgreSQL 9.6(↑) 버전을 설치하고


컨트롤러 쉘을 작성한다


pgctl 


WELCOME TO PGCTL!

========================================================================== [1] start : starts PostgreSQL DB. [2] stop : stops PostgreSQL DB. [3] status : checks status PostgreSQL DB. [4] version : checks version PostgreSQL DB. [0] quit|q|exit|e : exits PGCTL ===========================================================================

명령어는 이정도 하면 될 것이고


Interactive mode와  Non-Interactive mode가 둘 다 지원하게 작성한다


Interactive mode


$ sh pgctl

WELCOME TO PGCTL!

========================================================================== [1] start pg : starts PostgreSQL DB. [2] stop pg : stops PostgreSQL DB. [3] status pg : checks status PostgreSQL DB. [4] version pg : checks version PostgreSQL DB. [0] quit|q|exit|e : exits PGCTL ===========================================================================

1


Non-Interactive mode


$ sh pgctl 1


차근차근 더 실력을 높여보자


0


그래서 설치 따위는 컴퓨터에게 맡겨버리자 :D


'2015 > 12월' 카테고리의 다른 글

Shell Script 입문과정 ( feat. Oracle 자동설치 스크립트 )  (0) 2017.10.19
Comments