[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에 스케줄러가 잘 등록이 되었는지 확인 하면 됩니다.  

[CentOS 5] Apache 2.4.2 컴파일 설치방법

Published on: 2013. 11. 14. 13:11 by louis.dev
아파치 서버를 설치하기 전 먼저 아파치를 컴파일 하여 설치하기 위한 라이브러리를 먼저 설치해 줘야 합니다. 1. gcc 컴파일러, pcre 설치
# yum install gcc
# yum install pcre-devel
2. APR, APR-Util 설치 위와같이 yum을 통해 간단하게 APR을 설치할 수 있지만 yum으로 설치되는 APR의 버전이 너무 낮아 Apache 2.4를 설치할때 에러를 내면서 설치가 되지 않는다. 그러므로 홈페이지에서 최신버전을 다운로드 받아 컴파일 설치하는 방식으로 진행 해야 합니다.
## APR설치
## APR의 경로를 설정하지 않으면 기본적으로 /usr/local/apr 에 설치됩니다.
$ wget http://mirror.apache-kr.org//apr/apr-1.4.6.tar.gz
$ gzip -d apr-1.4.6.tar.gz
$ tar xvf apr-1.4.6.tar.gz
$ cd apr-1.4.6
$ su
# ./configure; make && make install
## APR-Util
$ wget http://apache.mirror.cdnetworks.com//apr/apr-util-1.4.1.tar.gz
$ gzip -d apr-util-1.4.1.tar.gz
$ tar xvf apr-util-1.4.1.tar
$ cd apr-util-1.4.1
$ su
## configure 옵션중 with-apr 로 위에서 설치한 apr의 경로를 지정해 줍니다.
# ./configure --with-apr=/usr/local/apr ;make && make install
설치시 유의사항이 있다면 반드시 APR먼저 설치한 뒤 APR-util을 설치해야 합니다. 3. Apache 2.4.2 설치
$ mkdir ${사용자 디렉토리}/httpd-2.4.2
$ wget http://apache.mirror.cdnetworks.com//httpd/httpd-2.4.2.tar.gz
$ tar xvfz httpd-2.4.2.tar
$ cd httpd-2.4.2
$ su
## with-apr 설치 옵션으로 위에서 설치한 apr의 설치 경로를 입력합니다.
# ./configure --prefix=${아파치 설치 경로} --with-apr=/usr/local/apr ; make && make install
설치 중 다음과 같은 에러가 발생할 수 있습니다.
exports.c:2858: error: redefinition of 'ap_hack_apr_xlate_conv_byte'
exports.c:1813: error: previous definition of 'ap_hack_apr_xlate_conv_byte' was here
exports.c:2859: error: redefinition of 'ap_hack_apr_xlate_close'
exports.c:1814: error: previous definition of 'ap_hack_apr_xlate_close' was here
exports.c:2864: error: redefinition of 'ap_hack_apr_text_append'
exports.c:1819: error: previous definition of 'ap_hack_apr_text_append' was here
exports.c:2865: error: redefinition of 'ap_hack_apr_xml_parser_create'
exports.c:1820: error: previous definition of 'ap_hack_apr_xml_parser_create' was here
exports.c:2866: error: redefinition of 'ap_hack_apr_xml_parse_file'
exports.c:1821: error: previous definition of 'ap_hack_apr_xml_parse_file' was here
exports.c:2867: error: redefinition of 'ap_hack_apr_xml_parser_feed'
exports.c:1822: error: previous definition of 'ap_hack_apr_xml_parser_feed' was here
exports.c:2868: error: redefinition of 'ap_hack_apr_xml_parser_done'
exports.c:1823: error: previous definition of 'ap_hack_apr_xml_parser_done' was here
exports.c:2869: error: redefinition of 'ap_hack_apr_xml_parser_geterror'
exports.c:1824: error: previous definition of 'ap_hack_apr_xml_parser_geterror' was here
exports.c:2870: error: redefinition of 'ap_hack_apr_xml_to_text'
exports.c:1825: error: previous definition of 'ap_hack_apr_xml_to_text' was here
exports.c:2871: error: redefinition of 'ap_hack_apr_xml_empty_elem'
exports.c:1826: error: previous definition of 'ap_hack_apr_xml_empty_elem' was here
exports.c:2872: error: redefinition of 'ap_hack_apr_xml_quote_string'
exports.c:1827: error: previous definition of 'ap_hack_apr_xml_quote_string' was here
exports.c:2873: error: redefinition of 'ap_hack_apr_xml_quote_elem'
exports.c:1828: error: previous definition of 'ap_hack_apr_xml_quote_elem' was here
exports.c:2874: error: redefinition of 'ap_hack_apr_xml_insert_uri'
exports.c:1829: error: previous definition of 'ap_hack_apr_xml_insert_uri' was here
exports.c:2883: error: redefinition of 'ap_hack_apu_version'
exports.c:1838: error: previous definition of 'ap_hack_apu_version' was here
exports.c:2884: error: redefinition of 'ap_hack_apu_version_string'
exports.c:1839: error: previous definition of 'ap_hack_apu_version_string' was here
make[2]: *** [exports.lo] 오류 1
make[2]: Leaving directory `/home/${사용자}/httpd-2.4.2/server'
make[1]: *** [all-recursive] 오류 1
make[1]: Leaving directory `/home/${사용자}/httpd-2.4.2/server'
make: *** [all-recursive] 오류 1
이 에러는 yum으로 낮은 버전의 APR을 설치한 후 다시 컴파일 설치로 최신버전의 APR이 설치되었을때 발생하는 문제로 낮은 버전의 APM을 지우면 됩니다.
#yum remove APR

[CentOS 5] MySQL 5.5.25 컴파일 설치하기

Published on: 2013. 11. 14. 13:09 by louis.dev
리눅스 서버에 MySQL을 설치하는 방식은 세가지 정도입니다.
  1. yum을 통한 간단한 설치
  2. rpm 패키지를 통한 설치
  3. 컴파일 설치
이 중 컴파일 설치로 진행해 보도록 하겠습니다. 1. CMAKE 설치 MySQL 5.5.x 버전 부터는 make가 아닌 cmake를 통해 컴파일 설치를 해야 합니다. 그렇기 때문에 먼저 cmake를 설치해야 합니다.
## cmake 설치에 필요한 라이브러리 설치
# yum -y install zlib curl
# yum -y install gcc g++ cpp gcc-c++
# yum -y install openssl openssl-devel
# yum -y install libtermcap-devel ncurses-devel libc-client-devel bzip2-devel
# yum -y install bison

## cmake 설치
# wget http://www.cmake.org/files/v2.8/cmake-2.8.4.tar.gz
# tar xvfzp cmake-2.8.4.tar.gz
# cd cmake-2.8.4
# ./bootstrap
# make all
# make install
2. MySQL 설치에 필요한 라이브러리 설치
$ wget http://dev.mysql.com/get/Downloads/MySQL-5.5/MySQL-devel-5.5.25-1.rhel5.x86_64.rpm/from/http://ftp.jaist.ac.jp/pub/mysql/
$ su
# rpm -Uvh --force --nodeps MySQL-devel-5.5.25-1.rhel5.x86_64.rpm
3. MySQL 5.5.25 다운로드 후 설치
$ http://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.25.tar.gz/from/http://ftp.iij.ad.jp/pub/db/mysql/
$ tar xvfz mysql-5.5.13.tar.gz
$ cd /mysql-5.5.13
$ su
# cmake -DCMAKE_INSTALL_PREFIX=${MySQL이 설치될 경로} 
-DWITH_EXTRA_CHARSETS=all 
-DMYSQL_DATADIR=/data -DENABLED_LOCAL_INFILE=1 
-DWITH_INNOBASE_STORAGE_ENGINE=1 
-DMYSQL_UNIX_ADDR=${MySQL이 설치될 경로}/mysql.sock 
-DMYSQL_DATADIR=${MySQL이 설치될 경로}/data 
-DDEFAULT_CHARSET=utf8 
-DDEFAULT_COLLATION=utf8_general_ci 
-DWITH_EXTRA_CHARSETS=all 
-DMYSQL_TCP_PORT=3306
4. 권한 설정 및 세팅
# groupadd mysql
# useradd -g mysql mysql
# chown -R mysql:mysql ${mysql 설지 경로}

# cd ${mysql 설지 경로}
#  ./scripts/mysql_install_db --user=mysql --datadir=${mysql 설치 경로}/data
# cp support-files/my-medium.cnf /etc/my.cnf
# cp support-files/mysql.server /etc/init.d/mysqld

## mysqld 파일의 datadir부분을 아래와 같이 수정한다.
# vi /etc/init.d/mysqld   

datadir=${mysql 설치 경로}/data
그리고 서비스를 실행시키면 됩니다.
# /sbin/service mysqld start
이후 작업사항은 아래 블로그에서 확인하세요

[Linux] PHP 설치하기

Published on: 2013. 11. 14. 13:08 by louis.dev
아파치 서버에 간단한 설정으로 PHP 구동을 확인할 수 있습니다.
$ wget http://kr2.php.net/get/php-5.4.3.tar.gz/from/kr.php.net/mirror
$ tar xvfz php-5.4.3.tar.gz
$ cd php-5.4.3

$ su
# ./configure 
--with-apxs2=${아파치 서버가 설치된 경로}/bin/apxs 
--with-mysql=${mysql이 설치된 경로} 
--with-config-file-path=${아파치 서버가 설치된 경로}/conf 
--with-exec-dir=${아파치 서버가 설치된 경로}/bin 
--enable-track-vars 
--enable-trans-sid 
--with-zlib

#make && make install
# cp php.ini-production ${아파치 서버가 설치된 경로}/conf/php.ini
php를 설치후에 아파치 설정파일에 php 설정을 추가해 줍니다.
$ vi ${아파치 서버가 설치된 경로}/conf/httpd.conf
아래 내용을 추가해 줍니다.
<IfModule mime_module>
	AddType application/x-httpd-php .php .phtm
</IfModule mime_module>

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

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

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