캠핑과 개발


파일 생성 여부를 모니터링 하기 위해 inotify를 사용하면 생성, 수정, 삭세 등을 모니터링 할 수 있다.
설치 방법은 아래와 같다.


yum install inotify-tools
하지만 알수 없는 에러를 내고 안된다.


해서 http://sourceforge.net/projects/inotify-tools/ 아래 사이트에 가서 inotify-tools-3.14.tar.gz 를 다운로드 받아서 설치를 한다.

설치 파일을 다운로드 한 후 차례대로 다음 명령어를 입력한다.

//wget http://github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz

tar -zxvf inotify-tools-3.14.tar.gz
cd inotify-tools-3.14
./configure
make
make install
updatedb

설치 후
아래 명령어를 입력하여 실제 모니터링 되는지 여부를 확인해본다.
inotifywait -r -m -e modify,create,delete,move,moved_to --format '%:e %w%f' /감시할디렉터리명

해당 명령어는 수정,등록,삭제,이동일 경우 모니터링을 한다.


많은 원인이 있겠으나 그 중 하나의 해결책  


STS(Eclipse) - jsp 페이지에서 copy or paste 하면 validation 하면서 급격히 느려지는 현상


jsp 파일 내에서 copy 또는 paste 를 하는 경우 STS(Eclipse)가 급격히 느려지는 현상이 발생할 때가 있다.

이러한 현상은 매우 다양한 원인이 존재하는 데 나의 경우에는 jsp가 아닌 include 된 javascript 파일들을 validation 하는 과정에서 시간이 오래 걸린다는 것을 파악했다.


프로젝트에 마우스 오른쪽 버튼을 클릭한 뒤,

Properties > JavaScript > Include Path > Source[tab]으로 이동하여

Excluded 를 선택한 뒤 Edit 버튼을 클릭하여 **/*.* 을 추가하자.


[출처]http://hosang.tistory.com/archive/20131111

'DEVELOPMENT > IDE' 카테고리의 다른 글

Visual Studio Code 유용한 정보  (0) 2018.09.07
eclipse.ini 설정  (0) 2014.04.22
eclipse workspace 바로가기 링크 만들기  (0) 2010.11.17
Eclipse 유용한 PLUG-IN  (0) 2009.10.24
[eclipse] 자주쓰는 이클립스 단축키  (0) 2008.12.24


사용자의 특정 날짜를 입력 받아서 지정된 날짜까지 일별로 loop를 돌면서 처리해야 하는 경우 

해당 쉡을 사용한다.

간단하지만 변수에 담긴 date를 증가 및 감소 하는 법을 알지 못해 고생했다. 


실행방법은 ./dateLoopRunShell.sh 20101120 형태로 사용하면 인자는 yyyymmdd 형태의 시작일을 입력한다.


해당 쉘의 종료일은 쉘을 실행시키는 시점의 날짜가 되며 20101120 ~ 현재일까지 날짜를 출력한다.

20101120

20101121

20101122

20101123   

.

.

.

20150128


echo 부분을 주석처리 하고 해당 부분에 처리할 로직을 넣어서 실행한다.


dateLoopRunShell.sh

#!/bin/bash

echo "HELLO SHELL"


START=$(date --date=$1 +"%Y%m%d")

END=$(date +"%Y%m%d")


CURRENT="$START"


#echo `date -d "$CURRENT 1 day" +"%Y%m%d"`


while [ "$CURRENT" != "$END" ]; do

    echo $CURRENT


     #run shell job


     CURRENT=`date -d "$CURRENT 1 day" +"%Y%m%d"`

done


'DEVELOPMENT > Linux' 카테고리의 다른 글

crontab 설명  (0) 2015.05.06
centos inotify install  (0) 2015.04.22
windows OS 에서 port 및 프로세스 확인  (0) 2014.04.08
[linux]ssh 비밀번호 없이 접속하기  (0) 2013.04.25
centos 5.3 svn 설치  (0) 2012.06.01

서버가 가동중이면 서버를 중지한다.


shell> "C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqladmin" -u root shutdown


서비스 등록

shell> "C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld" --install


설정파일을 지정하여 서비스 등록

shell> "C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld" --install MySQL --defaults-file=C:\my-opts.cnf


자동으로 서비스를 시작되게 하지 않고 수동으로 실행하기를 원한다면

shell> "C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld" --install-manual


서비스 삭제

shell> "C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld" --remove



참고 : http://dev.mysql.com/doc/refman/5.0/en/windows-start-service.html


1. 다운로드


해당 페이지로 가서 http://www.mongodb.org/downloads OS에 맞는 설치 버전을 다운로드 한다.



여기에선 64bit 윈도우에 설치를 하기 위해서 윈도우 버전을 다운로드 한다.

msi혁식의 설치 버전은 별로 선호하지 않기 때문에 zip로된 파일로 한다.


2. 설치


다운로드 받은 파일은 mongodb-win32-x86_64-2008plus-2.6.7.zip 파일로 압축을 풀어서 c:\에 옮겨 놓는다

해당 위치는 c:\mongodb-win32-x86_64-2008plus-2.6.7




몽고 db의 기본 디렉터리는 c:\data\db로 잡혀 있기때문에 해당 경로를 만들어 주도록 한다.

변경을 위해서는 시작시 옵션을 통해서 해당 db 경로를 지정 해줄 수 있다.




3. 실행


해당 디렉터리를 만들었다면 서버를 실행해본다.


서버를 실행하기 위해서는 cmd 창으로 들어가는데 서버 실행을 위해서는 일반 권한으로 들어가도 되지만 

추후 서비스 등록을 위해서 관리자 권한으로 cmd.exe 명령을 실행한다.


윈도우 시작 -> 모든프로그램 -> 보조프로그램 -> 명령프롬프트 메뉴를 마우스 우클릭하여 관리자 권한으로 실행을 선택한다.


실행 파일은 모두 설치경로\bin에 있으므로 해당 bin 폴더로 이동하거나 전체 경로로 입력한다.


cd C:\mongodb-win32-x86_64-2008plus-2.6.7\bin


여기에서는 c:\mongodb-win32-x86_64-2008plus-2.6.7\bin으로 이동했다고 가정하고

다음 명령어를 실행한다.


mongod


혹은 기본 db 저장경로를 변경하였다면 


mongod --dbpath c:\변경된 db경로



다음과 같은 창이 나타났다면 정상적으로 실행이 됐다.




4. 종료

실행이 정상적으로 된다면 종료도 해봐야 한다. 종료 하는 방법은 다음과 같다.

창을 닫거나..

Ctrl + C 혹은 Ctrl + D로 종료 한다.



5. 설정

해당 정보들을 설정파일로 관리를 할 수도 있는데 설정 파일은 config.cfg라는 파일을 만들어서 해당 내용을 복사하여 

C:\mongodb-win32-x86_64-2008plus-2.6.7\ 폴더에 config 폴더를 만들고 거기에 넣는다.


최종 config.cfg 위치는 C:\mongodb-win32-x86_64-2008plus-2.6.7\config\config.cfg가 된다


#db folder

dbpath = C:\data\db


#port

port = 27017


#log 

logpath = C:\data\logs\mongo.log


#web admin

rest = true



이렇게 설정된 config.cfg 파일은 다음가 같은 명령어로 실행을 하게 되면 해당 설정파일의 정보를 읽어 들여서 실행 할 수 있다.

실행 하기 전에는 설정 파일이 있는 경로가 정상적으로 존재 해야 한다. 


C:\mongodb-win32-x86_64-2008plus-2.6.7\bin>mongod -f C:\mongodb-win32-x86_64-2008plus2.6.7\config\config.cfg



정상적으로 구동이 되었다면 웹 브라우저에 
http://127.0.0.1:28017/를 통하여 로그 및 상태정보를 모니터링 할 수 있다.




6. 서비스 등록
윈도우 서비스를 등록하기 위해서는 다음과 같은 명령어로 서비스를 등록한다. 해당 서비스를 등록하기 위해서는 반드시 관리자 권한으로 실행을 해야 한다.

C:\mongodb-win32-x86_64-2008plus-2.6.7\bin>mongod -f C:\mongodb-win32-x86_64-2008plus-2.6.7\config\config.cfg -install



서비스가 정상적으로 등록이 되었다면 서비스에 정상적으로 등록이 된다.



6. 서비스 해제

등록된 서비스는 다음과 같이 해제할 수 있다.

C:\mongodb-win32-x86_64-2008plus-2.6.7\bin>mongod -f C:\mongodb-win32-x86_64-2008plus-2.6.7\config\config.cfg -remove



설치과정은 이렇게 하면 되고 설치가 정상적으로 완료되고 서비스가 실행이 되었다면 실제 쉘을 실행해 본다.
bin 폴더에 있다면 다음 명령어를 사용하요 접속한다.

monog




위에 화면과 같이 > 형태의 명령어를 입력 받을 수 있도록 되면 정상적으로 설치가 된 것이다.

help

db

show dbs 등의 명령으로 정상적으로 되는지 확인해본다. 

exit 명령어로 나온다.





JSTL 요약

DEVELOPMENT/Java2014. 8. 5. 12:51
설정

web.xml

 

<taglib>
    <taglib-uri>jstl-c</taglib-uri>
    <taglib-location>/WEB-INF/tlds/jstl/c.tld</taglib-location>
</taglib>
<taglib>
    <taglib-uri>jstl-fmt</taglib-uri>
    <taglib-location>/WEB-INF/tlds/jstl/fmt.tld</taglib-location>
</taglib>
<taglib>
    <taglib-uri>jstl-fn</taglib-uri>
    <taglib-location>/WEB-INF/tlds/jstl/fn.tld</taglib-location>
</taglib>


 

jsp 에서

 

<%@ taglib uri="jstl-c" prefix="c" %>

<%@ taglib uri="jstl-fmt" prefix="fmt" %>

<%@ taglib uri="jstl-fn" prefix="fn" %>


EL#

  1. 생존범위 속성 맵

    1. pageScope
    2. requestScope
    3. sessionScope
    4. applicationScope
  2. 요청 파라미터 맵

    1. param
    2. paramValues
  3. 요청 헤더 맵

    1. header
    2. headerValues
  4. 쿠키 맵

    1. cookie
  5. 컨텍스트 초기화 파라미터 맵(서블릿 초기화 파라미터 아님)

    1. initParam
  6. 실제 pageContext 객체에 대한 참조. 이것은 빈임

    1. pageContext

      1. pageContext 접근자

        1. getErrorData()
        2. getPage()
        3. getRequest()
        4. getResponse()
        5. getServletConfig)()
        6. getServletContext()
        7. getSession()
      2. JspContext로 부터 상속받은 접근자

        1. getAttribute()
        2. getAttributeNamesInScope()
        3. getAttributesScope()
        4. getExpression!Eval!uator()
        5. getOut()
        6. getVariableResolver()



스크립팅

  1. <$= request.getHeader("host") %>

EL 내장 객체

  1. ${header["host"]}
  2. ${header.host}
  3. ${headerValues.host[]}


스크립팅

  1. <%= request.getMethod() %>

EL 내장 객체

  1.  ${pageContext.request.method}

 

core

 

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

  • 일반적인 것

    • <c:out>
    • <c:set>
    • <c:remove>
    • <c:catch>
  • 조건

    • <c:if>
    • <c:choose>
    • <c:when>
    • <c:otherwise>
  • URL 관련

    • <c:import!>
    • <c:url>
    • <c:redirect>
    • <c:param>
  • 반복

    • <c:forEach>
    • <c:forEachToken>


① set


     - JSP의 setAttribute()와 같은 역활
     - 기본형
       <c:set   var="변수명"
                    value="변수명에 할당된 값"
                    target="자바빈 객체명이나 Map 객체명"
                    property="자바빈 객체나 Map 객체의 값을 설정할 프로퍼티 명"
                    scope="변수의 공유 범위(유효기간)으로 page|request|session|application" />
     - 예제
          <c:set var="country" value="${'Korea'}" />
          <c:set var="intArray" value="<%=new int[] {1,2,3,4,5}%>" />
          <c:set var="sum" value="${sum+i}" />
 
② out


     - JSP의 표현식을 대체하는 것으로 많이 사용됨
     - 기본형
          <c:out var="변수명"
                    default="기본값"
                    escapeXML="true|false" />
 
     * escapeXML
     > 생략시 기본값은 true
     > true일 경우 값 중에 포함된 <>&'" 문자들을 각각 <, >, &, ', "로 출력

     - 예제
          <c:out value="${sum}" />
          <c:out value="${val}" />
 
③ remove


     - JSP의 removeAttribute()와 같은 역활
     - 기본형
          <c:remove var="변수명"
                              scope="변수의 공유 범위로 page(생략 시 기본)|request|session|application" />
     - 예제
          <c:remove var="browser" />
 
④ catch


     - body 위치에서 실행되는 코드의 예외를 잡아내는 역할
     - 기본형
          <c:catch var="에러가 발생할 때 에러 메세지가 포함될 변수명" />
     - 예제
          <c:catch var="errmsg">
               line 1~
               <%=1/0%>
               line 2~
          </c:catch>
          <c:out value="${errmsg}" />
 
⑤ if


     - 조건문에 사용
     - 기본형
          <c:if   test="조건 판별식"
                    var="변수명"
                    scope="변수의 공유범위 page|request|session|application"
     - 예제
          <c:if test="${country != null}">
               국가명 : <c:out value="${country}" />
          </c:if>
 
⑥ choose


     - 자바의 switch문과 동일
     - 조건에서 문자열 비교가 가능
     - 하나 이상의 <when>과 하나의 <otherwise> 서브 태그를 가짐
 
⑦ when


     - choose 태그의 서브태그
     - choose 태그내에서 여러번 사용될 수 있다.
     - 기본형
          <c:when test="조건 판별식" />
 
⑧ otherwise


     - choose 태그의 서브태그
     - choose 태그내에서 한번만 사용될 수 있다.
     - 예제 :
          <c:choose>
               <c:when test="${country == 'Korea'}">
               나라 : <c:out value="${country}" />
          </c:when>
 
          <c:when test="${country == 'Canada'}">
               나라 : <c:out value="${country}" />
          </c:when>
   
          <c:otherwise>
               선택된 나라가 없습니다.
          </c:otherwise>
     </c:choose>
 
⑨ forEach


     - 객체 전체에 걸쳐 반복 실행할 때 사용
     - 기본형
          <c:forEach   items="반복할 객체명"
                              begin="시작값"
                              end="종료값"
                              step="증가값"
                              var="변수명"
                              varStatus="별도의 변수" />

⑩ forTokens


     - 문자열을 주어진 구분자(delimiter)로 분할
     - 기본형
          <c:forTokens items="반복할 객체명"
                              delims="구분자"
                              begin="반복할 시작값"
                              end="반목 마지막값"
                              step="증가값"
                              var="변수명"
                              varStatus="별도의 변수"
     - 예제
          <c:forTokens var="color" items="빨강색,주황색.노란색.초록색,파랑색,남색.보라색" delims=",.">
               color : <c:out value="${color}" /><br>
          </c:forTokens>
 
⑪ import!


 - 웹 어플리케이션 내부의 자원 및 http, ftp와 같은 외부에 있는 자원에 대해 접근
 - 기본형
  <c:import! url="읽어올 URL"
     var="읽어올 데이터를 저장할 변수명"
     scope="변수의 공유 범위"
     varReader="리소스의 내용을 Reader 객체로 읽어올 때 사용"
     charEncoding="읽어온 데이터의 캐릭터셋 지정" />
 
⑫ redirect


     - response.sendRedirect()를 대체하는 태그로 지정한 다른 페이지로 이동
     - 기본형
          <c:redirect url="이동할 URL" />
 
⑬ url


     - 쿼리 파라미터로 부터 URL 생성
     - 기본형
          <c:url var="생성한 URL이 저장될 변수명"
                    value="생성할 URL"
                    scope="변수의 공유 범위" />
 
⑭ param


     - 기본형
          <c:param name="파라미터 명"
                         value="파라미터 값" />
               <c:url var="registrationURL" value="/customers/register">
               <c:param name="name" value="${param.name}" />
               <c:param name="country" value="${param.country}" />
          </c:url>


<c:set var="temp" value="Hello! World" />
<c:out value="${ temp }" default="value is null"/><br>
<c:out value="${ temp }" default="value is null" escapeXml="false" /><br>
<c:out value="${ temp2 }" default="value is null" /><br>

<c:remove var="timezone" scope="session"/>
<c:set var="timezone" scope="session">CST</c:set>

<c:out value="${cookie['tzPref'].value}" default=="CST"/>

 

function
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>

${fn:substring(name, 1, 10)}


fn:contains(string, substring)  
string이 substring을 포함하면 true 리턴. 

fn:containsIgnoreCase(string,substring)
대소문자에 관계없이, string이 substring을 포함하면 true 리턴. 

fn:endsWith(string, suffix)   
string이 suffix로 끝나면 true 리턴. 

fn:escapeXml(string)    
string에 XML과 HTML에서 특별한 의미를 가진 문자들이 있으면, XML 엔티티 코드로 바꿔준 뒤 문자열 리턴. 

fn:indexOf(string,substring)  
string에서 substring이 처음으로 나타나는 인덱스 리턴. 

fn:join(array, separator)
  
array(배열) 요소들을 separator를 구분자로 하여 연결해서 리턴 

fn:length(item)
      
item 이 배열이나 컬렉션이면 요소의 갯수를, 문자열이면 문자의 갯수를 리턴. 

fn:replace(string, before, after)
 
string 내에 있는 before 문자열을 after 문자열로 모두 바꿔서 리턴. 

fn:split(string, separator)
   
string 내의 문자열을 separator에 따라 나누어서 배열로 구성해 리턴. 

fn:startsWith(string, prefix)
  
string이 prefix로 시작하면 true 리턴. 

fn:substring(string, begin, end)
 
tring에서 begin 인덱스에서 시작해서 end 인덱스에 끝나는 부분
(end 인덱스에 있는문자 포함)의 문자열을 리턴.

fn:substringAfter(string, substring)

string에서 substring이 나타나는 이후의 부분에 있는 문자열을 리턴. 

fn:substringBefore(string, substring)

string에서 substring이 나타나기 이전의 부분에 있는 문자열을 리턴. 

fn:toLowerCase(string)
    
string을 모두 소문자로 바꿔 리턴. 

fn:toUpperCase(string)
    
string을 모두 대문자로 바꿔 리턴. 

fn:trim(string)
      
string 앞뒤의 공백(whitespace)을 모두 제거하여 리턴.


fmt

 

<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>

  • 국제화

    • <fmt:message>
    • <fmt:setLocale>
    • <fmt:setTimeZone>
    • <fmt:bundle>
    • <fmt:setBundle>
    • <fmt:param>
    • <fmt:requestEncoding>
  • 포맷팅

    • <fmt:timeZone>
    • <fmt:setTimeZone>
    • <fmt:formatNumber>
    • <fmt:formatDate>
    • <fmt:parseNumber>
    • <fmt:parseData>
    • <fmt:parseNumber>



jstl fmt로 날짜보여줄때, pattern attribute에 의한 날짜 표현 방식들

pattern="yyyy-MM-dd aa h:mm:ss"    
2007-12-13 오전 9:36:48

pattern="yyyy-MM-dd aa hh:mm:ss"  
2007-12-13 오전 09:36:48

pattern="yyyy-MM-dd H:mm:ss"      
2007-12-13 9:36:48

pattern="yyyy-MM-dd HH:mm:ss"    
2007-12-13 09:36:48


<fmt:setLocale value="fr_CA" scope="session"/>
<fmt:setTimeZone value="Australia/Brisbane" scope="session"/>

<fmt:formatDate value="${blogEntry.created}" dateStyle="full"/>
<c:out value="${blogEntry.title}" escapeXml="false"/>
<fmt:formatDate value="${blogEntry.created}" pattern="h:mm a zz"/>
<fmt:formatNumber value="0.02" type="currency" currencySymbol="원"/>

<fmt:formatNumber value="9876543.61" type="number"/>

[type="{number|currency|percent}"]


<fmt:parseDate value="${usDateString}" parseLocale="en_US" type="both" dateStyle="short" timeStyle="short" var="usDate"/>

 

sql
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %>
  • 데이터베이스 접근

    • <sql:query>
    • <sql:update>
    • <sql:setDataSource>
    • <sql:param>
    • <sql:dataParam>



xml

<%@ taglib uri="http://java.sun.com/jsp/jstl/xml" prefix="x" %>

  • 코어 xml 액션

    • <x:parse>
    • <x:out>
    • <x:set>
  • xml 흐름 제어

    • <x:if>
    • <x:choose>
    • <x:when>
    • <x:otherwise>
    • <x:forEach>
  • 변환 액션

    • <x:transform>
    • <x:param>

http://blog.daum.net/sowebpro/7163216 --> 이곳에서 퍼왓습니다. 감사합니다.

-vm
 C:\Program Files\Java\jdk1.6.0_41\bin\javaw.exe
-Dosgi.requiredJavaVersion=1.6
-Xms768m
-Xmx768m
-XX:MaxPermSize=256M

2. General - Appearance의 Use mixed fonts and colors for labels 체크해제

3. Console 창 버퍼크기 늘림

4. Validation 끔, 글자체 변경, 단축키변경

5. Search 옵션 변경

컨트롤 + H 로 검색창 띄우고 Customize.. 버튼 클릭 후 File Search 말고 전부 체크해제

General - Search 의 Reuse editors to show matches 체크해제 (검색한 내용 클릭시 무조건 새창에 뜨게하기)

 

7. General - Workspace - Local History 의 local history 보관기간, 갯수, 용량 늘리기.


 

 

SVN 사용법

DEVELOPMENT/Server2014. 4. 13. 22:31

SVN 서버스 사용법



계정은 SVN 계정으로 합니다.


접속

svn://아이피/저장소명


기동 

svnserve -d -r /data/svn


종료

kill -9 프로세스번호


저장소 생성

-일반방식

svnadmin create --fs-type fsfs [저장소경로]


svnadmin create --fs-type bda [저장소경로]


초기 설정

각 저장소에서 conf 폴더로 이동 후 svnserve.conf 파일 수정 아래 부분 주석 해제

[general] 

# 익명 사용자 읽기 사용 여부

anon-access = read

# 인증 사용자 쓰기 사용 여부

auth-access = write

# 인증에 사용될 패스워드 설정 파일

password-db = passwd


사용자추가

각 저장소의 신규 사용자를 추가할때 사용하며 각 저장소의 conf 폴더로 이동하여 passwd 파일을 열어서 사용자를 추가한다.

[users] 

# svn 사용자의 비밀번호를 지정

# 사용자ID = 비밀번호

test=test123


프로세스 확인

ps -aux | grep svnserv



설치

yum install -y subversion


리눅시 시작시 자동 실행 

vi /etc/rc.d/init.d/subversion 을 이용하여 신규로 파일이 없다면 파일을 만들고 아래 내용을 입력한다.

입력이 완료되면 저장 후 종료하고 

chkconfig subversion on

명령을 입력한다.

#!/bin/bash 

. /etc/rc.d/init.d/functions

[ -x /usr/bin/svnserve ] || exit 1

RETVAL=0

prog="svnserve"

desc="Subversion server"

OPTIONS="--threads --root /home/svn"

start() {

        echo -n $"Starting $desc ($prog): "

        daemon $prog -d $OPTIONS

        RETVAL=$?

   [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog

   echo

}

 

stop() {

          echo -n $"Shutting down $desc ($prog): "

   killproc $prog

   RETVAL=$?

   [ $RETVAL -eq 0 ] && success || failure

   echo

   [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog

   return $RETVAL

}

 

case "$1" in

  start)

   start

   ;;

  stop)

   stop

   ;;

  restart)

   stop

   start

   RETVAL=$?

   ;;

  condrestart)

        [ -e /var/lock/subsys/$prog ] && restart

   RETVAL=$?

   ;;

  *)

   echo $"Usage: $0 {start|stop|restart|condrestart}"

   RETVAL=1

esac

 

exit $RETVAL

EOF



apache tomcat 5.5 이후 버전에서의 Context 생성 방법입니다.


server.xml 파일을 열게 되면 xml Tag가 Service라는 태그의 속성명 name을 찾습니다.

일반적으로는  <Service name="Catalina"> 이렇게 되어 있습니다.


먼저 context를 만들기 위한 폴더를 생성합니다.

service 태그의 name값인 Catalina 폴더를 만들고 다시 그 안에 localhost 라는 폴더를 만듭니다.

최종적으로는 위에 내용대로라면 톰캣경로/conf/Catalina/localhost가 되겠네요


그럼 이제 이하위에 파일을 생성하시면 되는데 파일은 xml 형식입니다.

root Context는 ROOT.xml을 만드시면 되고 기타 context는 컨텍스트명.xml파일로 만드시면 됩니다.


파일이 생성이 되었으면 이제 관련 설정을 파일에 추가하면 됩니다.

test라는 컨텍스트를 만들게 되면 아래와 같은 형식이 되겠습니다.


text.xml  

<?xml version='1.0' encoding='utf-8'?>

<Context path="/test"

         docBase="/home/test/web"

         debug="0"

         reloadable="true"

         crossContext="true">

<Valve className="org.apache.catalina.valves.AccessLogValve"

            directory="/home/test/logs/access"

            prefix="access."

            suffix=".log"

            pattern="common"

            fileDateFormat="yyyy-MM-dd"

            resolveHosts="false"/>

    <Resource name="jdbc/my" auth="Container"

                        type="javax.sql.DataSource" driverClassName="com.mysql.jdbc.Driver"

                        url="jdbc:mysql://[ip]:[port]/[db명]?zeroDateTimeBehavior=convertToNull"

                        username="[username]" password="[password]"

                        loginTimeout="10" maxActive="50"

                        maxIdle="10" maxWait="-1" />

</Context>



만약 다른 도메인이나 서브 도메인이 생성되어야 한다면

server.xml에 신규 HOST를 추가한다.

<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
    기존 도메인 내용이 있음
</Host>
<!-- 신규로 추가되는 서브 도메인 -->
<Host name="test.anaconda.pe.kr" appBase="webapps" unpackWARs="true" autoDeploy="true">
</Host>



그리고 /conf/Catalina/폴더 아래에 test.anaconda.pe.kr라는 폴더를 만든다.

/conf/Catalina/test.anaconda.pe.kr와 같은 폴더를 가진다.

그리고 그 아래에 ROOT.xml파일을 만들고 context 정보를 넣어주면 된다.

메신저, DB 등의 각종 프로세스와 포트를 확인하실려면

 

실행 - cmd 에서

 

netstat -ano     라고 치시면 아래와 같은 결과를 확인합니다.

-----------------------------------------------------------------

Proto  Local Address          Foreign Address        State           PID
TCP    0.0.0.0:135            0.0.0.0:0              LISTENING       848
TCP    0.0.0.0:445            0.0.0.0:0              LISTENING       4
TCP    0.0.0.0:3389           0.0.0.0:0              LISTENING       804
TCP    127.0.0.1:1025         0.0.0.0:0              LISTENING       1580
TCP    192.168.0.5:139        0.0.0.0:0              LISTENING       4
UDP    0.0.0.0:445            *:*                                    4
UDP    0.0.0.0:500            *:*                                    628
UDP    0.0.0.0:4500           *:*                                    628
UDP    0.0.0.0:11109          *:*                                    3772
UDP    127.0.0.1:123          *:*                                    888
UDP    127.0.0.1:1256         *:*                                    2816
UDP    127.0.0.1:1900         *:*                                    976
UDP    127.0.0.1:2633         *:*                                    3596
UDP    192.168.0.5:123        *:*                                    888
UDP    192.168.0.5:137        *:*                                    4
UDP    192.168.0.5:138        *:*                                    4
UDP    192.168.0.5:1900       *:*                                    976

----------------------------------------------------------

TCP/UDP --> UDP는 네트워크를 이용하는 프로그램 // TCP는 인터넷을 이용하는 프로그램입니다.

 

Local Address  에서 포트를 확인할 수 있습니다.  문제는 PID 확인인데 ... 이것만 봐서는 어떤 프로그램인 지 알수가 없습니다.

 

PID로 프로그램 확인하기

cmd 모드에서 아래와 같이 명령어를 입력합니다.

 

tasklist

---------결과 ----------------

이미지 이름                  PID 세션 이름           세션#  메모리 사용
========================= ====== ================ ======== ============
System Idle Process            0 Console                 0         16 K
System                         4 Console                 0        296 K
smss.exe                     500 Console                 0        404 K
csrss.exe                    548 Console                 0     21,556 K
winlogon.exe                 572 Console                 0      5,964 K
services.exe                 616 Console                 0      3,604 K
lsass.exe                    628 Console                 0      2,992 K
svchost.exe                  804 Console                 0      5,220 K
svchost.exe                  848 Console                 0      4,800 K
svchost.exe                  888 Console                 0     89,336 K
svchost.exe                  948 Console                 0      4,044 K
svchost.exe                  976 Console                 0      4,196 K
spoolsv.exe                 1020 Console                 0      6,372 K
nvsvc32.exe                 1156 Console                 0      4,168 K
alg.exe                     1580 Console                 0      3,664 K
ctfmon.exe                  1676 Console                 0      5,212 K
EnMixCPL.exe                1388 Console                 0     13,824 K
ctfmonnpe.exe               1424 Console                 0      7,860 K
rundll32.exe                1364 Console                 0      5,172 K
RaUI.exe                    1972 Console                 0      9,104 K
conime.exe                  2792 Console                 0      3,768 K
usnsvc.exe                  2956 Console                 0      2,784 K
npkcmsvc.exe                2748 Console                 0      1,860 K
explorer.exe                4040 Console                 0     75,796 K
svchost.exe                 3800 Console                 0      4,264 K
dkznote.exe                 3772 Console                 0     13,056 K
INISAFEWeb60Tray.exe         468 Console                 0      4,924 K
Hwp.exe                     1212 Console                 0      5,172 K
iexplore.exe                3596 Console                 0     76,820 K
WLLoginProxy.exe            1328 Console                 0      7,908 K
AYAgent.aye                 3868 Console                 0      9,380 K
AYServiceNT.aye             3248 Console                 0     41,516 K
cmd.exe                      692 Console                 0      2,776 K
taskmgr.exe                 1896 Console                 0      2,860 K
wuauclt.exe                 1124 Console                 0     31,264 K
wmiprvse.exe                2392 Console                 0      6,444 K
tasklist.exe                1404 Console                 0      4,376 K

----------------------------------------------------------------------

이게 어떤 서비스(데몬)와 연결되어 있는 지 알려면 다음과 같이 명령을 주면 됩니다.

 

tasklist /svc

 

이미지 이름                  PID 서비스
========================= ====== =============================================
System Idle Process            0 N/A
System                         4 N/A
smss.exe                     500 N/A
csrss.exe                    548 N/A
winlogon.exe                 572 N/A
services.exe                 616 Eventlog, PlugPlay
lsass.exe                    628 PolicyAgent, ProtectedStorage, SamSs
svchost.exe                  804 DcomLaunch, TermService
svchost.exe                  848 RpcSs
svchost.exe                  888 AudioSrv, Browser, CryptSvc, Dhcp, dmserver,
                                 ERSvc, EventSystem,
                                 FastUserSwitchingCompatibility, helpsvc,
                                 HidServ, lanmanserver, lanmanworkstation,
                                 Netman, Nla, RasMan, Schedule, seclogon,
                                 SENS, SharedAccess, ShellHWDetection,
                                 srservice, TapiSrv, Themes, TrkWks, W32Time,
                                 winmgmt, wscsvc, wuauserv
svchost.exe                  948 Dnscache
svchost.exe                  976 LmHosts, RemoteRegistry, SSDPSRV
spoolsv.exe                 1020 Spooler
nvsvc32.exe                 1156 NVSvc
alg.exe                     1580 ALG
ctfmon.exe                  1676 N/A
EnMixCPL.exe                1388 N/A
ctfmonnpe.exe               1424 N/A
rundll32.exe                1364 N/A
RaUI.exe                    1972 N/A
conime.exe                  2792 N/A
usnsvc.exe                  2956 usnjsvc
npkcmsvc.exe                2748 npkcmsvc
explorer.exe                4040 N/A
svchost.exe                 3800 stisvc
dkznote.exe                 3772 N/A
Hwp.exe                     1212 N/A
iexplore.exe                3596 N/A
WLLoginProxy.exe            1328 N/A
AYAgent.aye                 3868 N/A
AYServiceNT.aye             3248 ALYac_PZSrv
cmd.exe                      692 N/A
taskmgr.exe                 1896 N/A
wmiprvse.exe                2336 N/A
tasklist.exe                4048 N/A

-----------------------------------------------

svchost.exe가 가장 많은 역할과 서비스와 연결되어 있음을 알 수 있습니다


[출처]http://asfreeas.blogspot.kr/2009/09/windows-%EC%89%98%EC%97%90%EC%84%9C-%EA%B0%81%EC%A2%85-%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4%EC%99%80-%ED%8F%AC%ED%8A%B8-%ED%99%95%EC%9D%B8xp-server.html