Java alternatives를 이용한 버전 변경

Published on: 2015. 6. 24. 22:31 by louis.dev

기존에 설치되어있던 자바의 버전을 변경을 할때 CentOS, RHEL같은 OS에서는 JAVA_HOME환경변수만 잡아주더라도 java -version 으로 커맨드를 날려보면 제대로 변경이 안된다. 이때는 alternatives를 이용하여 자바의 버전을 변경하자.




$ su
# alternatives --install /usr/bin/java java ${새로운 자바가 설치된 경로}/bin/java 0
# alternatives --config java 
를 입력하면 현재 설치된 자바 버전이 쭉나오는데 alternatives --install로 지정한 번호를 입력하면 된다. 그 후 java -version으로 버전이 제대로 변경이 되어있는지 확인하면 끝

[Linux] Proxy 서버 설정하기

Published on: 2013. 11. 25. 19:20 by louis.dev

서버중 외부로 나가는 트래픽이 막혀있는 서버가 있다면 프록시를 통해 외부로 나가는 요청을 할수가 있습니다.


1. 로그인 세션 동안만 유지되는 방법

텔넷이나 ssh에 로그인 되어있는동안만 프록시를 사용하고 있다면 다음과 같이 사용하면 됩니다.

# 프록시 서버 설정
$ export http_proxy=http://www.yourproxyserver.com:port
$ export https_proxy=http://www.yourproxyserver.com:port
#프록시서버 해제
$ unset http_proxy
$ unset https_proxy

2. 로그인 세션이 종료된 후에도 프록시를 유지시키는 방법

# 여기서는 .bashrc에 작업했지만 .profile, .bash_profile, .bashrc_profile 어디에 설정해도 동일합니다.
$ vi ~/.bashrc

#아래내용 추가
export http_proxy=http://www.yourproxyserver.com:port
export https_proxy=http://www.yourproxyserver.com:port
# 저장후

$source ~/.bashrc

이후 wget이나 curl로 외부로 요청이 되었을때 데이터를 제대로 가져오면 프록시 설정이 제대로 된것입니다.

$ wget www.daum.net
#혹은
$ curl -0 www.daum.net

[CRONTAB] 크론탭을 이용하여 무중단 톰켓 서버 만들기

Published on: 2013. 11. 14. 13:21 by louis.dev
서버를 운영하다 보면 여러가지 이유때문에 서버가 다운되는 경우가 발생을 하게 됩니다. 대부분의 경우 톰캣 스크립트를 통해 서버를 재시작 시켜주기만 하면 되는 간단한 작업이지만, 휴가를 가거나 오랜기간 컴퓨터앞에 앉아 있을 수가 없게 되었을때 서버 다운이 발생하면 속수무책으로 당할수 밖에 없습니다. 그리고 이런 문제가 자주 발생하게 된다면 사용자들은 해당 서비스를 신뢰할수 없게 될것입니다. 이런 때를 대비해서 쉘 스크립트를 통해 톰켓 서버의 상태를 체크 하여 서버가 다운되었을때 재실행 시키는 스크립트를 작성하고, CRONTAB을 이용하여 주기적으로 서버의 상태를 체크하게 하면 그나마 나은 서비스가 될수 있을 것입니다. 아래의 스크립트 내용은 톰켓의 상태를 체크하여 프로세스가 죽어 있으면 스크립트를 실행하여 서버를 재시작 시키는 스크립트 입니다.
#!/bin/bash

export JAVA_HOME=사용자들의 JAVA_HOME
export PATH=$PATH:$JAVA_HOME/bin
export CATALINA_HOME=톰켓 설치 위치
export PATH=$PATH:$CATALINA_HOME/bin

if [ -z "`ps -eaf | grep java| grep tomcat`" ]; then
        $CATALINA_HOME'/bin/startup.sh'
        END_TIME=`date +%m/%d' '%H:%M:%S`
        echo "["$END_TIME"] tomcat restart.."
fi
기본적으로 JAVA_HOME같은 환경변수들은 JDK를 설치할때 세팅을 해줌에도 불구하고 스크립트에서 다시 export 시키는 이유는 crontab에서 스크립트를 실행하면 .bash_profile이나 /etc/profile 에 JAVA_HOME, PATH같은 환경변수를 선언해 두었더라도 환경변수를 읽을 수 없어 톰캣실행이 잘 되지 않습니다. 그렇기 때문에 톰켓을 실행시키기 위한 필수 환경변수들을 스크립트에 다시 한번 선언해 주어야 합니다. 이후 해당 스크립트를 CRONTAB에 등록하면 되는데, CRONTAB에 스크립트를 등록하는 방식은 다음과 같습니다.
$ crontab -e
##vi 에디터가 실행되면 다음의 내용을 추가합니다.
*/5 * * * * /스크립트 경로/tomcat_checker.sh >> /data/log/tomcat-restart.log 2>&1
따로 cron expression은 설명하지 않겠습니다. 위의 뜻은 5분마다 tomcat_checker.sh 스크립트를 실행시키고 그에 따른 결과 로그를 tomcat-restart.log에 append(>>) 하겠다는 뜻입니다. 위와 같이 설정한 후 root 권한으로 crontab을 재시작 시키면 crontab이 적용되게 됩니다.
$ su
# /sbin/service crond restart
그리고 crontab -l 명령어로 해당 crontab에 스케줄러가 잘 등록이 되었는지 확인 하면 됩니다.  

Linux - 사용자 추가/비밀번호등록/사용자 삭제

Published on: 2011. 10. 27. 16:39 by louis.dev

//사용자추가
#adduser 사용자아이디
//사용자 삭제
#userdel 사용자아아디
//비밀번호 변경
#passwd 사용자 아이디

Linux - Apache server와 Tomcat을 JK Connector(JKModule)로 연결하기

Published on: 2011. 1. 31. 12:08 by louis.dev

1. 여기에 들어가서 JK Connector 파일을 다운로드 받습니다.
저는 여기에서 jk/binaries/linux/jk-1.2.31/x86_64/mod_jk-1.2.31-httpd-2.2.x.so 를 다운 받겠습니다. 작업하시는 분의 서버에 따라 다운받으시면 되겠습니다.

2. 이름이 너무 길기 때문에 다운로드된 파일을 mod_jk.so로 변경합니다.

3. apache 서버 루트에 modules 디렉토리에 복사하여 넣습니다. 권한은 755로 주시면 됩니다.
chmod 755 mod_jk.so

4. apache 서버루트에 conf/httpd.conf 에 다음을 추가합니다.
 
 LoadModule jk_module     modules/mod_jk.so
<IfModule jk_module>
  JkWorkersFile conf/workers.properties
  JkLogFile             logs/mod_jk.log
  JkLogLevel    info
  JkMountFile   conf/uriworkermap.properties
</IfModule>

5. conf 디렉토리 밑( httpd.conf와 같은 위치 입니다.) workers.properties 파일을 생성합니다.
worker.list=worker1
worker.worker1.port=8009
worker.worker1.host=localhost
worker.worker1.type=ajp13
worker.worker1.lbfactor=1

6. conf 디렉토리 밑( httpd.conf와 같은 위치 입니다.) uriworkermap.properties 파일을 생성합니다.
/*.do=worker1
/*.jsp=worker1
이렇게 uriworkermap.properties파일에 추가하면 해당 suffix로 URL을 요청하면 tomcat이 처리하게 넘겨주게 됩니다.
특정 컨텍스트의 모든 요청을 톰켓이 처리 하길 원하신 다면
/contextName/*=worker1
로 설정하시면 됩니다.

7. 설정하신후 ${server_root}/bin/apachectl graceful 을 실행하여 서버 설정을 적용합니다.
만약
apachectl: Configuration syntax error, will not run "graceful":
httpd: Syntax error on line 205 of /httpd/conf/httpd.conf: Cannot load /httpd/modules/mod_jk.so into server: /httpd/modules/mod_jk.so: wrong ELF class: ELFCLASS32
라는 문제가 발생한다면 해당 jk 모듈을 서버에 맞게 32비트용, 혹은 64비트용으로 새로 다운받으신후 적용하시면 문제 없이 적용이 되는것을 볼수가 있습니다.