CUBRID 스크립트로 배우는 스크립트
본문 바로가기
IT 이야기/Script

CUBRID 스크립트로 배우는 스크립트

by 찬찬이 아빠 2020. 5. 28.
반응형
  cubrid_start.sh : 실행 스크립트

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#!/bin/sh
 
# cubrid 프로세스가 없으면 cubrid 서비스 시작
if [ `ps -ef | grep "cub_cas" | grep -"grep" | wc -l` -eq 0 ]; then
     cubrid service start
else
     echo -"\n@++ CUBRID Service already running.\n"
fi
 
# DB 개수 카운트
# awk : 추출, databases.txt 파일에서 문자열 추출 후 카운트
DB_Count=`cat $CUBRID/databases/databases/txt | awk '{print $1}' | grep -"#" | grep --'^$' | wc -l`
 
# DB명 저장
db_name=`cat $CUBRID/databases/databases.txt | awk '{print $1}' | grep -"#" | grep --'^$'`
 
# 저장된 DB가 일치하면 다음을 수행
if [ `cat $CUBRID/databases/databases.txt | awk '{print $1}' | grep -"#" | grep --'^$'`
    for DB_NAME in ${db_name[@]}
     do
 
        # cubrid_ha.conf에 설정된 ha_db 리스트와 동일하면
          if [ `cat$CUBRID/conf/cubrid_ha.conf | grep -"ha_db_list=" | grep "$DB_NAME" | grep -"#" | grep --'^$' | wc -l` -eq 1 ]; then
               for DB_NAME in ${db_name[@]}
 
                        # cubrid heartbeat 시작, 상태 정보 표시
                         cubrid heartbeat start
                         echo -"\n---------- CUBRID servoce status"
                         sleep 1
                         cubrid heartbeat status
                         break;
                 if
            done
fi
 
# DB가 1개일 경우
if [ ${DB_Count} -eq 1 ]; then
 
    # cubrid가 HA 모드이면 cubrid server 상태 출력
     if [ `cat $CUBRID/conf/cubrid.conf | grep -"ha_hode=" | grep -"on" | grep -"#" | grep --'^$' | wc -l` -eq 0 ]; then
          echo -"\n-------------------- CUBRID service status --------------------\n"
          sleep 1
          cubrid server status
     fi
 
# DB가 2개 이상일 경우
elif [ ${DB_Count} -ge 2 ]; then
 
    # DB를 하나씩 꺼내서 아래 수행
     for DB_List in ${db_name[@]}
     do
    
        # 구동중인 DB가 아니면
          if [ `ps -ef | grep "${DB_List}" | grep cub_server | grep -"grep" | wc -l` -eq 0 ]; then
 
            # DB명을 보여주고 실행한 것인지 물어봄
               echo -"\n Do you want to run the\\033[0;32m $DB_List\\033[0;39m database ?"
 
            # Y, N를 입력받아 cubrid server 시작, 상태 정보 출력
               read -" Input Yes or No : " answer
               case $answer in
                    [yY]* )
                        cubrid server start ${DB_List};;
                   [nN]* )
                        continue;;
                  * )
                        echo -" You must enter Yes or No. Return the sheel. ";;
               esac
          fi
     done
     echo -"----------------- CUBRID service status --------------------\n"
     cubrid server status
else
     echo -"\n----- Impossible to run. Please run it manually. -----\n"
fi
cs

 

 

  cubrid_service_stop.sh : 서비스 종료 스크립트

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#!/bin/sh
 
# 구동중인 cubrid 프로세스가 없다면
if [ `ps -ef | grep cub_ | grep -"grep" | wc -l` -eq 0 ]; then
     echo -"++ cubrid process is not running."
 
# 구동중인 cubrid 프로세스가 있다면 cubrid service 중지 후 cubrid service 상태 출력
else
     cubrid service stop
     echo -"\n---------- CUBRID service status ----------"
     sleep 1
     cubrid service status
 
     echo "@ cubrid process status"
 
# cubrid 프로세스가 1개 이상이면
     if [ `ps -ef | grep cub_ | grep -"grep" | wc -l` -ge 1 ]; then
          echo -"++ $(ps -ef | grep "cub_" | grep -v grep)"
     else
          echo -"++ cubrid process is not running."
     fi
fi
cs

 

 

  cubrid_server_stop.sh : 서버 종료 스크립트

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#!/bin/sh
 
# DB 수 카운트
DB_Count=`cat $CUBRID/databases/databases.txt | awk '{print $1|' | grep -"#" | grep --'^$' | wc -l`
 
# DB가 1개 일 경우
if [ ${DB_Count} -eq 1 ]; then
 
    # DB명 저장
     db_name=`cat $CUBRID/databases/databases.txt | awk '{print $1|' | grep -"#" | grep --'^$'`
 
    # cubrid가 ha db 이면
     if [ `cat $CUBRID/conf/cubrid_ha.conf | grep "ha_db_list=" | grep "${db_name}" | grep -"#" | grep --'^$' | wc -l` -eq 1 ]; then
 
        # heartbeat가 구동되어 있다면 heartbeat 중지
          if [ `cat $CUBRID/conf.cubrid.conf | grep "service=" | grep "heartbeat" | grep -"#" | grep --'^$' | wc -l` -eq 0 ]; then
               cubrid heartbeat stop
          else
               echo -"\n @++ cubrid.conf file has -- service=heartbeat -- settings. Use the cubrid_service_stop.sh command.\n"
          fi
 
          echo -"\n ---------- CUBRID service status ----------"
          sleep 1
          cubrid service status
     else
 
        # cubrid server 중지
          cubrid server stop ${db_name}
          echo -"\n ---------- CUBRID service status ----------"
          sleep 1
          cubrid service status
     fi
 
 
# DB가 2개 이상일 경우
elif [ ${DB_Count} -ge 2 ]; then
 
    # DB 목록 저장
     DB_List=`cat $CUBRID/databases/databases.txt | awk '{print $1}' | grep -"#" | tr "\n" "\t"`
 
    # DB 리스트를 보여주고 DB명을 입력 받아 저장
     echo -"\nInput CUBRID Database Name."
     echo -"DB List : ${DB_List}\n "
     read -" [ CUBRID Database Name ] : " ID
 
    # cubrid 프로세스 수 저장
     CUB_SERVER=`ps -ef | grep "${ID}" | grep cub_server | grep -"grep" | wc -l`
 
    # cubrid 프로세스가 없다면 DB 리스트를 다시 보여줌
     if [[ $ID == "" ]]; then
          echo -"\nSpace or Enter is not allowed..."
          echo -"DB List : ${DB_List}\n "
          echo -"++ Please try again after verifying the database name.\n"
          exit;
 
    # cubrid가 ha db이면
     elif [ `cat $CUBRID/conf/cubrid_ha.conf | grep "ha_db_list=" | grep "${ID}" | grep -"#" | grep --'^$' | wc -l` -eq 1 ]; then
 
        # cubrid 프로세스가 1개 이상이면 heartbeat 중지, 서비스 상태 출력
          if [ ${CUB_SERVER} -ge 1 ]; then
               cubrid heartbeat stop ${ID}
          else
               echo -"\n@++ CUBRID HA-Mode ${ID} Server is not running.\n"
          fi
          echo -"\n ---------- CUBRID service status ----------"
          sleep 1
          cubrid service status
 
    # cubrid 프로세스가 1개 이상이면
     elif [ ${CUB_SERVER} -ge 1 ]; then
 
        # cubrid 서버 중지, 서비스 상태 출력
          cubrid server stop ${ID}
          echo -"\n ---------- CUBRID service status ----------"
          sleep 1
          cubrid service status
     else
          echo -"\n@++ CUBRID${ID} Server is not running.\n"
     fi
else
     if [ `ps -ef | grep cub_server | grep -"grep" | wc -l` -eq 0 ]; then
          echo -"\n@++ CUBRID Server is not running.\n"
     else
          ehco -"\n ---------- Impossible to stop. Please stop it manually. ----------\n"
     fi
fi
cs
반응형

댓글