리눅스 ∵ - ↘ Find … 명령어 활용 find /usr/include |xargs grep scoketaddr_in
= grep으로 두단어 검색

자신의 홈 디렉토리에서 확장자가 `.txt인 파일을 찾을 경우
find ~ -name *.txt

현재 디렉토리 밑에서 첫글자가 영어 대문자인 모든 파일을 찾을 경우
find . -name *

`/usr/local에서 첫 두글자는 영어 소문자이고 세번째 한자리는 숫자로 시작하는 이름을 가진 파일을 찾을 경우
find /usr/local -name *

번에서의 파일을 찾으면서 현재 디렉토리와 한 단계 밑의 디렉토리에서만 파일을 찾을 경우
find ~ -maxdepth 2 -name *.txt

현재 디렉토리 밑에서 `zzang이라는 이름을 가진 사용자 소유의 파일을 찾을 경우
find -user zzang

시스템에서 소유자나 그룹이 없는 파일을 찾을 경우
find -nouser -o -nogroup

자신의 홈 디렉토리에서 최근 3일 동안 변경된 파일들을 찾을 경우
find ~ -mtime -3

`/tmp에서 최근 5일 동안 변경되지 않은 파일들을 찾아서 삭제할 경우
find /tmp +5 -ok rm {} ; 현재 디렉토리 밑에 있는 모든 포스트 스크립트 파일을 찾아서 gzip으로 압축을 하고 그 목록을 result.txt라는 파일에 저정할 경우
find . -name *.ps -fprint result.txt -exec gzip {} ;

크랙커의 침입이 의심스러워 자신의 시스템에서 suid와 guid가 설정된 일반 파일들을 찾아서 권한을 확인할 경우
find / -prem +6000
find / -type f -perm +6000 -print -ls 시스템 관리의 실수로 일반 사용자가 쓰기 권한을 갖도록 설정되어 있는 파일을 찾아서 실행 권한을 없애는 경우
find / -perm +2 ! -type l -print -exec chmod o-w {} ; 소유자가 tin인 memo로 시작하는 모든 파일을 출력한다.
find . -name memo* -user tin 시스템 내의 모든 empty 파일을 제거한다. 단 삭제 전 확인을 요청한다. -exec 대신 -ok가 사용된 것에 주의하기 바란다.
find / -size 0 -ok rm {} ; 현재 디렉토리에서 대문자로 시작하지 않는 파일들을 찾아 프린트한다.
find . ! -name * -exec lpr {} ;

JEUS 운영 및 관리
JEUS 5.0을 버전을 기준으로 하고 설치시 입력한 JEUS 관리자의 비밀번호는 jeusadmin이라고 전제한다.

JEUS 구동

주로 jboot, jdown이란 이름으로 스크립트를 작성하여 실행한다. 이 파일들의 실제 명령행은 다음과 같다.

jboot: jeus -Uadministrator -Pjeusadmin
jdown: jeusadmin -Uadministrator -Pjeusadmin jeusexit
jeusadmin console

jeusadmin 콘솔툴을 이용하여 JEUS 컨테이너기동/종료, 엔진리스트확인 등 JEUS 엔진의 상태를 제어 및 점검한다.

콘솔 실행: jeusadmin 'hostname' -Uadministrator -Pjeusadmin
명령 목록
allenglist: jeusadmin의 allenglist 명령은 현재 각 컨테이너의 엔진기동 상태를 보여준다.
downcon : 지정된 컨테이너를 종료시킨다.
startcon : 지정된 컨테이너를 기동시킨다.
pidlist: JEUS의 엔진 프로세스를 확인한다.
webadmin console

webadmin 콘솔은 JEUS의 컨테이너 내부에 기동된 서블릿 엔진의 상태를 모니터링하기 위한 명령프롬프트이다.

콘솔 실행: webadmin -Uadministrator -Pjeusadmin
명령 목록
ti: ti는 Thread Information의 약자로 JEUS 서블릿 엔진의 컨텍스트그룹 내부의 Worker Thread의 상태를 체크하기 위한 명령어이다.
st -m: 현재 Container의 JVM Memory 사용 현황
st -r: 설정한 Context로 들어온 요청 count와 평균처리시간
st -s: 현재 유지하고 있는 세션 객체의 수
webadmin 반복 모니터링

webadmin 내의 모니터링 명령어를 주기적으로 자동실행하게 하려면 다음과 같은 형식으로 명령어를 실행한다.

-i 주기(초) -k 횟수
예) ti -i 2 -k 10 : ti 명령어를 2초 간격으로 10번 수행
dbpooladmin console

dbpooladmin 콘솔은 컨테이너별로 할당된 Database Pool의 상태를 모니터링하기 위한 명령프롬프트이다.

콘솔 실행: dbpooladmin -Uadministrator -Pjeusadmin
명령 목록
Info: 해당 컨테이너에서 관리되고 있는 Database Pool의 정보가 표시된다.
min, max 값은 JEUSMain.xml에 설정한 Pool의 최소/최대값이며 current는 현재 풀에 보관되고 있는 실제 커넥션의 수, idle의 풀에 보관되고 있는 커넥션중, 사용가능한 개수를 의미한다.


--------------------------------------------------------------------------------
JEUS 장애 처리
JEUS 프로세스ID (PID) 확인

JEUS의 엔진 프로세스는 다음과 같이 2가지 방법으로 확인할 수 있다.

ps -ef | grep java
-Xmx512m 이후 부분을 확인하여 JEUS Manager 프로세스임을 확인한다.
[-D컨테이너이름]을 이용하여 컨테이너 프로세스임을 확인한다.
jeusadmin 콘솔툴을 이용한 PID 확인
pidlist: pidlist 명령을 사용하여 PID를 확인한다.
JAVA Dump

덤프 생성: kill -3 [JEUS-PID]
덤프 확인: JEUS JAVA프로세스에서 생성한 덤프는 JeusServerLog에서 확인한다.
예) vi $JEUS_HOME/logs/`hostname`/JeusServer_20070201.log


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

WebtoB 운영 및 관리
WebtoB 구동

wsboot
wsdown-I : ps -ef을 이용하여 wsm, hth, htl, html 등의 프로세스가 나타나지 않으면 정상 종료
wsadmin console

WebtoB 시스템을 관리하기 위해서 wsadmin이라는 프로그램이 제공된다. wsadmin 프로그램은 UNIX 환경의 shell과 비슷한 Command Interpreter 이다. 즉, 항상 프롬프트상태로 대기중이다가 입력되는 명령어를 해석하여 이를 실행하게 된다. 여러 Node를 한 Domain으로 사용하는 경우 wsadmin으로 전체를 중앙관리가 가능하며 각 Node 별로 로컬에서만도 관리가 가능하다.

wsadmin
명령 목록
ci: 요청에 대한 현재 클라이언트 정보를 표시한다. HTH당 접속한 클라이언트의 KeepAlive 되어있는 개수를 보여준다. WebtoB단에 요청을 보내고 HTTP Session의 KeepAliveTimeout 전까지 유지되고 있는 클라이언트의 총 개수 정보이다.
ci -s: 현재 클라이언트의 전체 수를 표시한다.
si: 웹서버 환경설정 파일에서 *SERVER 절에 선언한 서버들의 수행정보를 보여준다.
st -s: 웹서버 환경설정 파일에서 *SERVER, *URI, *EXT 절에 설정한 서비스의 상태가 보인다.
st -p: WebtoB 프로세스의 상태를 표시한다. 주로 JEUS-WebtoB간 연동 상태를 확인할 때 사용한다.
wsadmin 명령 연속 보기

ci, st -s, st -p, si 등의 명령어를 다음과 같이 수행하면 주기적으로 WebtoB의 상태를 모니터링할 수 있다.

r -i <시간(초)> -k <횟수> <명령>
예) r -i 1 -k 1000 st -s

'Database > Server' 카테고리의 다른 글

[Unix]sendmail 테스트  (0) 2009.09.09
[Linux] Find … 명령어 활용  (0) 2009.07.23
[JEUS] alias 설정  (0) 2009.07.23
[Linux]CVS 추가 방법  (0) 2009.06.30
[Unix] Unix 기본 명령어  (0) 2009.05.25
...
export JEUS_HOME=/jeus
...
#### JEUS alias ####
alias ja='jeusadmin `hostname` -Uadministrator -Pjeusadmin'
alias ea='ejbadmin `hostname`_ejb_engine1 -Uadministrator -Pjeusadmin'
alias wa='webadmin `hostname`_container1 -Uadministrator -Pjeusadmin'
alias da='dbpooladmin `hostname`_container1 -Uadministrator -Pjeusadmin'
alias ti='webadmin `hostname`_servlet_engine1 -Uadministrator -Pjeusadmin ti -i 3 -k 100000'
alias ss='webadmin `hostname`_servlet_engine1 -Uadministrator -Pjeusadmin st -s -i 3 -k 100000'
alias sd='webadmin `hostname`_servlet_engine1 -Uadministrator -Pjeusadmin st -d -i 3 -k 100000'
alias di='dbpooladmin `hostname`_container1 -Uadministrator -Pjeusadmin info -i 3 -k 100000'
alias jcfg='cd ${JEUS_HOME}/config/`hostname`'
alias jbin='cd ${JEUS_HOME}/bin'
alias scfg='cd ${JEUS_HOME}/config/`hostname`/`hostname`_servlet_engine1'
alias ecfg='cd ${JEUS_HOME}/config/`hostname`/`hostname`_ejb_engine1'

alias jhome='cd ${JEUS_HOME}'
alias lhome='cd ${JEUS_HOME}/logs'

alias jlog='tail -f ${JEUS_HOME}/logs/`hostname`/JeusServer_`date +%Y%m%d`.log'
alias alog='tail -f ${JEUS_HOME}/logs/`hostname`_servlet_engine1/MyGroup/accesslog/access_`date +%Y%m%d`.log'
alias elog='tail -f ${JEUS_HOME}/logs/`hostname`_servlet_engine1/MyGroup/errorlog/error_`date +%Y%m%d`.log'
alias ulog='tail -f ${JEUS_HOME}/logs/`hostname`_servlet_engine1/MyGroup/userlog/user_`date +%Y%m%d`.log'

>> su -l cvs
      CVS 계정으로 접근

>> mkdir dev-v2
      새로 추가할 repository path 디렉토리 생성

>> cvs -d /home/cvs/dev-v2 init
      dev-v2 을 CVS 관리 디렉토리로 만듬
      dev-v2 에 CVSROOT 디렉토리가 생기면서 CVS 설정 정보를 담겨된다.

>> cd /home/cvs/dev-v2/CVSROOT
      CVS 생성 디렉토리에 접근 후

>> htpasswd passwd cvsuser
      해당 repository 디렉토리에 접근 할수 있는 계정 / 암호를 추가한다.
      CVSROOT 디렉토리에 passwd 파일이 생기면서 암호를 관리 한다.

>> su -l
      root 로 접근

>> vi /etc/xinetd.d/cvspserver
      cvspserver 로 접근하는 프로세스에 대한 권한 설정

service cvspserver
{
        disable = no
        flags           = REUSE
        socket_type     = stream
        wait            = no
        user            = cvs
        server          = /usr/bin/cvs
        server_args     = -f --allow-root=/home/cvs/iadev --allow-root=/home/cvs/dev-v2 

        log_on_failure  += USERID/etc/init.d
}

빨간 부분과 같이 추가되는 repository 디렉토리를 allow-root에 걸어줌 

>> /etc/init.d/xinetd restart
     xinetd 데몬 restart

CVS 에 repository  추가 완료

+ Recent posts