[Linux, centos] Shell Script, jdk를 설치 및 경로 등록

function JDK_INSTALL
{

#JDK 버전 확인
java -version
rt=$?

if [ "$rt" -ne 0 ] 
then
    # 파일 압축 해제
    gzip -d $DIR/jdk-8u191-linux-x64.tar.gz
    # TAR 풀기
    tar -xvf $DIR/jdk-8u191-linux-x64.tar -C $DIR
    #JDK 경로로 JDK 이동
    mv $DIR/jdk1.8.0_191 $jdkDIR

    #=================== JDK 경로 설정 (/etc/profile 하단에 경로 등록) ===============
    echo -e "\n\nexport JAVA_HOME=/usr/java/jdk1.8.0_191" >> /etc/profile
    echo -e "\nexport JRE_HOME=/usr/java/jdk1.8.0._191/jre" >> /etc/profile    
    echo -e "\n\nPATH=\$PATH:/usr/java/jdk1.8.0_191/bin" >> /etc/profile
    echo -e "\n\nexport PATH=\$PATH" >> /etc/profile
    #=================== profile 재설정 ======================

    source /etc/profile

elif [ "$rt" -eq 0 ] 
then
    echo "===== JDK가 이미 설치되어 있습니다 ======"
fi 

}

쉘스크립트를 작성하면, 서버의 환경설정 간편화가 가능합니다.
제 경험상 서버 담당자(시스템 엔지니어)들이 해당 부분을 작성하는 경우가 많았지만,
어쩌다보니 최근 이 작업을 진행하고 있습니다.

개발을 하는 것과 조금 다른 느낌이지만, 나름대로 할 만합니다.
그 중에서도 jdk를 설치하는 과정에 대해 shell script로 리뷰해봅니다.

1) 먼저, jdk를 다운받아 설치합니다.

yum install -y java-1.8.0-openjdk-devel.x86_64

인터넷이 되는 환경이라면 yum이란 명령어로 간단히 설치가 가능합니다.

저는 tar.gz를 기준으로 설치하는 과정이기에 tar.gz를 경로에 옮겨놓고 설치합니다.
tar로 원하는 경로에 jdk 디렉토리를 풀고 난 후, 환경설정내에 java 경로로 사용할 곳에 jdk를 옮겨놓습니다.

그리고, 2) /etc/profile 경로에 jdk 경로를 작성합니다.
vi 에디터로 작성하는 경우, /etc/profile의 최하단으로 이동하여 "export JAVA_HOME= ~~~ " 이란 경로를 작성 후 저장하는 과정을 가지지만,
shell script로 작성하는 경우, echo "작성문" >> /etc/profile 을 호출하여, 설정파일의 최하단에 경로 설정을 작성합니다.

위와 같이, function으로 구성 후, 마지막에 function 단위로 호출하면 일반 프로그래밍처럼 생각할 수 있습니다.

** 작성하며, 알게된 포인트?

- $? 란 변수는 커맨드를 실행 후 리턴하는 값으로 True 이면 0, error이면 양수의 값 ( 프로그래밍시 true가 1인 경우와 반대임을 주의!)
- echo -e 명령어를 사용해야 \n(줄바꿈), \t(탭) 등 입력이 가능하다.


참고)

리눅스 tar 명령어 사용법 :https://recipes4dev.tistory.com/146

/etc/profile 실행시점? : https://groups.google.com/g/han.comp.os.linux.misc/c/6FzKG1Eb8NQ

리눅스 디렉토리 삭제 : https://rios.tistory.com/entry/Linux-%EB%A6%AC%EB%88%85%EC%8A%A4-%EB%94%94%EB%A0%89%ED%86%A0%EB%A6%AC-%EC%82%AD%EC%A0%9C-%ED%95%98%EC%9C%84%EB%94%94%EB%A0%89%ED%86%A0%EB%A6%AC-%ED%8F%AC%ED%95%A8

Bash 핵심요약 : https://blog.gaerae.com/2015/01/bash-hello-world.html

쉘 환경 설정 : https://blog.daum.net/ktlee2389/104

댓글

Designed by JB FACTORY