본문 바로가기
IT

우분투에서 Cubrid 자동 부팅 만들기

by Oh.mogilalia 2013. 3. 5.

http://www.callor.com/zbxe/90


보안에 강한 Cubrid 부팅 시나리오 재 작성

여기 올린 글을 Q&A에 올렸던 부트 스크립트를 사용해본후 문제점이 있어 보완 작성한 글입니다. 배포는 자유이나 배포하실때는 출처를 밝혀주시기 바랍니다.

원문은 www.callor.com에 있습니다


부팅할때 DB를 같이 올릴 수 있는 최적의 방법이 없을까

매뉴얼을 들여다 보아도 어찌 된 일인지 그에 대한 설명을 찾을 수 없었다.

그래서 여러가지로 고민하고 반복하여 만들어 본 결과 만족할 만한 결과를 얻었다.


1. 첫번재 방법으로 /etc/init.d/ 에 시작 데몬을 작성하여 chkconfig를 이용하여 자동 실행 되도록 하는 것이다.


가) 이 방법을 사용하면 Gnome의 서비스 관리자에서도 시작과 종료를 마음대로 할 수 있다.

나) 스크립트는 Q & A 에도 있습니다.


2. 그러나 이 방법은 다음과 같은 문제들이 있음을 발견했다.


가) Cubrid 대몬들이 모두 root 권한으로 실행는 관계로 보안에 매우 취약 할 수 있다.

나) 자동으로 시작되도록 설정한 Database들이 자동으로 시작되지 않는다. 

아마 데몬이 시작되는 시기가 디스크 마운트등의 순위와 맞지 않아 그런 것으로 생각된다.

때문에 데몬등 엔진은 잘 구동이 되지만, 부팅 후 다시 데몬을 stop 하고 다시 start 해주어야 비로소 자동 시작 Database가 구동이 된다.


3. 일단 root가 아닌 별도의 사용자 권한으로 구동해 줄 필요가 있었다. 


가) 그래서 일단 cubrid 를 생성한다.

        /usr/sbin/adduser cubrid

나) 그리고 CUBRID 이하 폴더의 소유자 권한을 cubrid로 지정한다.

       chown cubrid.cubrid –R CUBRID

다) Cubrid HOME_DIR에 /root/.cubris.sh 복사해 오고 소유자 권한을 cubrid로 지정한다.

        chown cubrid.cubrid .cubrid.sh


라) 로그인 쉘 스크립트에서 .cubris.sh를 실행해 주자 .bashrc 파일을 열고 다음을 추가한다.

  # -- Cubrid 환경설정 -----------

if [ -f .cubrid.sh ]; then

        . .cubrid.sh

fi


4. 생성된 cubrid 유저 권한으로 /etc/init.d/cubrid_service 스크립트를 실행하자.

가) /etc/init.d/cubrid_service 데몬 스크립트 중 일부를 다음과 같이 바꾼다.


start() {

     #$CUBRID_MANAGER/bin/cmauto start

     #sleep 1

     #$CUBRID_MANAGER/bin/cmjs start


     su cubrid - cubrid_service start

     RETVAL=$?

     return $RETVAL

}

stop() {

    #$CUBRID_MANAGER/bin/cmjs stop

    #sleep 1

    #$CUBRID_MANAGER/bin/cmauto stop

    #sleep 1

    #$CUBRID_BROKER/bin/cubrid_broker stop

    #$CUBRID_UTIL/commdb -A


    su cubrid - cubrid_service stop

    RETVAL=$?

    return $RETVAL

}

 

5. 시스템을 재 부팅


가) 프로세스를 검사해 보니 이제 cubrid 데몬들이 cubrid 유저 권한으로 실행 된 것을 볼 수 있다.

나) 하지만, 이 방법으로도 역시 Database를 자동으로 실행하지는 못한다. 스크립트가 작동되는 시간적 이유가 아닌가 생각된다.


6. 자 이제 그럼 /etc/rc.local 스크립트에 등록하여 자동으로 실행 하자.

가) /etc/rc.local 스크립트를 에디터로 열어 다음 문장을 추가해 준다.

          # Cubrid Database

          # cubrid_service 서비스 스크립트를 cubrid 사용자 권한으로 실행하여 데몬을 구동한다.

          su - cubrid cubrid_service start

 

7. 이제 시스템을 재부팅한다.


가) 권한의 문제, Database 자동 실행등의 문제는 해결된 것으로 보인다.

나) 매뉴얼에 나와 있는 몇몇 설명들이 실제와 달라 많이 혼동되었다.

다) 매뉴얼에는 다음과 같은 설명들이 실제 상황에서는 사용하지 않아도 되는 것들이었다.

  ① master : 마스터 데몬의 시작

  ② server : 원격 클라이언트의 요청에 응답하기 위한 서버 유틸리티

  ③ start_server database : master 실행 여부를 검사하고 중단되었으면 실행한 후 server를 실행한다.

  ④ Stop_server : start_server와 반대 되는 기능

  ⑤ Cubrid_broker start : 브로커 유틸리티를 시작한다.

라) 순서대로 실행해야 하는 부팅명령들이 cubris_service start하면 순서대로 실행된다.

마) 또한 자동실행으로 설정된 database 이름이 $CUBRID/admin/databases.txt파일에 있다고 하였으나 그렇지 않다.

 ① $CUBRID/Manager/cmserver/conf/autostartdb.conf 파일에 자동 시작 database 이름이 등록되어 있다._

'IT' 카테고리의 다른 글

자바 설치 방법  (0) 2013.03.07
우여곡절 끝에 큐브리드 매니저 실행 성공  (0) 2013.03.05
우분투 재 설치 과정 1  (0) 2013.03.05
우분투 설치 과정2  (0) 2013.03.04
우분투 설치 과정1  (0) 2013.03.03