grinder 사용팁grinder 사용팁

Posted at 2012. 9. 16. 15:23 | Posted in 개발이야기

grinder-3.8 버전 사용.

(이리 저리 해보고 해결한 것들만 메모함.)


grinder에 있는 jython 보다 높은 버전 사용하고 싶은 경우,

--> grinder/lib/jython-xxx.jar 를 빼고, property 및 실행 스크립트에 jython 설치 경로 및 classpath에 지정해 줬더니 되더라..

요렇게..

JYTHON_HOME=/usr/share/jython

JYTHON_CONFIG="-Dpython.home=$JYTHON_HOME -Dpython.path=$JYTHON_HOME/Lib"

CLASSPATH=$CLASSPATH:$JYTHON_HOME/jython.jar

java -cp $CLASSPATH $JYTHON_CONFIG net.grinder.Grinder


symbolic link 파일을 dist위치에 두고 배포하니 Agent에서 어러남.


agent 실행시 필요 jar 파일 미리 배포해둬야 한다. classpath에도 미리 잡아놔야 하고..

--> classpath에 ./lib/*.jar 와 같은식으로는 안먹네.. 모두 나열해주니 됨.


grinder.logger --> (grinder.hostID)-0.log 파일에 기록됨.


agent terminal에서 확인하려면 stdout으로 출력해서 보라.


grinder.statistics.delayReports = 1 는 TestRunner __init__ 에서 한번만하고, on/off 하지 않는다.


jython 스크립트 맨 밑줄에 공백 라인 한줄 넣어야 하더라..


jython 스크립트에 한글 쓰니 non-ascii character가 있다고 나불나불..

--> 첫째줄에 요렇게 넣어주면..

# _*_ coding: utf8 _*_



참고하기 좋은 글: http://www.cubrid.com/zbxe/71339

//

http long polling 구현시 참고할 사항http long polling 구현시 참고할 사항

Posted at 2012. 9. 16. 14:01 | Posted in Server

LongPolling 구현이 문제된 경우

 - 서버를 직접 만들고 경험한 내용이다.

 - Parent창이 longpoll 세션을 하나 열고, Child창을 띄워 별도의 longpoll 세션을 또 하나 열었다.

 - 각 세션에 논리 세션ID를 부여하고 서버측에서 데이터를 관찰.

 - 몇번 데이터가 왔다갔다 하면, Parent창과 Child창이 서로 다른 소켓으로 데이터를 보냄.

 - 브라우저가 물리 소켓을 pool 처럼 사용하는 것으로 추측. ?> pool처럼 사용한다고 함.


브라우저 동작 방식

 - 브라우저별 OS별 설정이 다르긴 하지만, 브라우저 프로세스 내에서 같은 도메인에 대해 열 수 있는 소켓 수는 제한적이다.

   * http 1.1 버전에서는 default=2 개라고 함. (사실 여부는 표준 문서 등 확인 필요)

   * 도메인별로 기본적으로 하나는 브라우저 메인이 사용하고, 나머지는 추가로 열어서 쓸 수 있다. 제한수가 2라는 의미는 추가로 열 수 있는 소켓수가 1이란 뜻이다.

   * 제한수를 넘어서 소켓을 열면 이전 소켓중 하나가 닫힌다고 함(역시 표준 문서 등 확인 필요)

 - 요즘 브라우저는 창을 여러개 띄우더라도 프로세스는 하나이고 쓰레드를 여러개 띄우는 형태.

 - 따라서, 창을 여러개 열어도 도메인이 같으면 제한된 소켓만 오픈할 수 있다.

 - 구글은 이런 브라우저 특성 때문에 빠른 로딩을 위해서 이미지 서버 도메인을 여러개 두고 한 화면 안의 img 태그에 여러개의 이미지 서버 도메인을 넣어 사용한다고 함. 병렬로 동시에 로딩 가능하다.

※ 위의 LongPolling구현의 문제는 Parent창이 추가로 longpoll 세션을 열었는데(2개), Child창이 뜨면서 세션을 하나더 연 경우(3개)가 됨.


해결

 - Child창을 띄우지 말고, Parent창 하나만 longpoll을 사용하거나,

 - Child창은 다른 도메인으로 longpoll 세션을 연다. (세션서버에 도메인을 여러개 등록) --> 잘 됨!

※ 더 정확한 내용 아시는 분은 댓글 부탁드립니다.

//

Authentication(인증) vs Authorization(권한)Authentication(인증) vs Authorization(권한)

Posted at 2012. 9. 16. 13:57 | Posted in 개발이야기

자주 헷깔리는 용어.


Authentication(인증)

    자격을 부여 (the mechanism whereby systems may securely identify their users)

    * who ?


Authorization(권한)

    자격이 있는 경우 사용할 수 있는 범위 (the mechanism by which a system determines what level of access a particular authenticated user should have to secured resources controlled by the system)

    * access resource ?

    * perform operation ?


참고: http://www.duke.edu/~rob/kerberos/authvauth.html

//

lucene & nutchlucene & nutch

Posted at 2012. 9. 16. 13:55 | Posted in OpenSource

lucene (검색엔진)

Apache Lucene(TM) is a high-performance, full-featured text search engine library written entirely in Java.

http://lucene.egloos.com/1386072

http://www.ibm.com/developerworks/kr/library/tutorial/os-apachelucene/section2.html


nutch (크롤링)

Apache Nutch is an open source web-search software project.

http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/Search/Document/nutch/Crawling

//

[linux] log files & how to see[linux] log files & how to see

Posted at 2012. 9. 16. 13:53 | Posted in OS/Unix/Linux

/var/log/wtmp : 사용자 login & logout & reboot 로그

$ last


/var/log/btmp : 로그인 실패 로그

$ lastb

짱깨들이 로그인하려고 돌린 흔적으로 용량이 300MB가 넘었다..
-rw------- 1 root utmp 309M Jun 11 11:55 btmp

test     ssh:notty    119.10.114.184   Mon Apr 16 19:37 - 19:37  (00:00)
test     ssh:notty    119.10.114.184   Mon Apr 16 19:37 - 19:37  (00:00)
oracle   ssh:notty    119.10.114.184   Mon Apr 16 19:37 - 19:37  (00:00)
oracle   ssh:notty    119.10.114.184   Mon Apr 16 19:37 - 19:37  (00:00)
root     ssh:notty    119.10.114.184   Mon Apr 16 19:37 - 19:37  (00:00)
root     ssh:notty    119.10.114.184   Mon Apr 16 19:37 - 19:37  (00:00)
root     ssh:notty    119.10.114.184   Mon Apr 16 19:36 - 19:36  (00:00)
root     ssh:notty    119.10.114.184   Mon Apr 16 19:36 - 19:36  (00:00)
unabv    ssh:notty    119.10.114.184   Mon Apr 16 19:36 - 19:36  (00:00)
unabv    ssh:notty    119.10.114.184   Mon Apr 16 19:36 - 19:36  (00:00)
rramirez ssh:notty    119.10.114.184   Mon Apr 16 19:36 - 19:36  (00:00)   

$ whois 119.10.114.184
[Querying whois.arin.net]
[Redirected to whois.apnic.net]
[Querying whois.apnic.net]
[whois.apnic.net]
% [whois.apnic.net node-3]
% Whois data copyright terms    http://www.apnic.net/db/dbcopyright.html

inetnum:        119.10.0.0 - 119.10.127.255
netname:        XinnetIDC
country:        CN
descr:          XinNet Technology Corp.
descr:          1st Floor, 2nd Building Section A,
descr:          BDA BeiGongDa Soft-ware Area, Beijing China.  <-- 중국애들 맞네..


파일 비우기(clear btmp)

cat /dev/null > /var/log/btmp


/var/log/messages : 시스템 에러 및 하드웨어 에러 로그

$ vi messages


/var/log/secure : 사용자 인증관련 로그

$ vi secure


/var/log/lastlog : 사용자 최종 로그인 정보

$ lastlog


현재 접속자 정보 보기

$ w

$ who

//

[linux] sshd 보안 설정[linux] sshd 보안 설정

Posted at 2012. 9. 16. 13:48 | Posted in OS/Unix/Linux

출처: http://mrain7.egloos.com/2391163


/etc/ssh/sshd_config


Root 로그인 차단

공격자 또는 내부 사용자가 root로 접근 가능할 경우 암호 무작위 입력으로 권한을 획득할 수 있습니다. 따라서, root 로그인을 차단, 일반 계정을 통하여 접근토록 하여야 합니다.Root 로그인 허용이 yes로 되어 있으면 no로 수정합니다.

#PermitRootLogin no

- 주석처리를 지우면 된다.


Forwarding 막기

만약, TCP 포트와 X11에 대한 포워드 기능을 사용하지 않는다면 비활성화 하시기 바랍니다.

AllowTcpForwarding no

X11Forwarding no


호스트 기반 인증 차단

Rhosts 사용이나 hosts.equiv를 통한 인증을 차단합니다. Rhost는 보안상 취약함으로 비활성화 합니다.

IgnoreRhosts yes

HostbasedAuthentication no

RhostsRSAAuthentication no




Port 변경하기

Port <변경할포트번호>


ssh port를 변경한 경우 클라이언트 측에서는 다음과 같은 설정을 해두고 사용하면 편하다.

http://blog.naver.com/deepblue28?Redirect=Log&logNo=140157240471&from=postView


해당 IP만 접속 허가 또는 거부

/etc/host.allow 와 host.deny




* 그 외 상세 설정은 evernote에 정리돼 있다. (어디에 적었뒀는지 까먹어대서..)

* ssh brute force attack을 막기 위해 fail2ban 을 사용해보자.

//

[openssl] OpenSSL API를 이용한 보안 프로그래밍[openssl] OpenSSL API를 이용한 보안 프로그래밍

Posted at 2012. 9. 16. 13:42 | Posted in 개발이야기

OpenSSL API를 이용한 보안 프로그래밍, Part 1: API의 개요

http://www.ibm.com/developerworks/kr/library/l-openssl.html


OpenSSL API를 이용한 보안 프로그래밍, Part 2: 안전한 핸드쉐이크(handshake)

http://www.ibm.com/developerworks/kr/library/l-openssl2.html


OpenSSL API를 이용한 보안 프로그래밍, Part 3: 보안 서비스 제공하기

http://www.ibm.com/developerworks/kr/library/l-openssl3.html

//

[openssl] command line sample[openssl] command line sample

Posted at 2012. 9. 16. 13:41 | Posted in 개발이야기

DES encript/descript

$ openssl enc -e -des -in aaa.c -out bbb.pem

$ openssl enc -d -des -in bbb.pem -out 111.c

$ diff aaa.c 111.c


Base64 encript/descript

$ openssl enc -e -base64 -in aaa.c -out bbb.b64

$ openssl enc -d -base64 -in  bbb.b64 -out 111.c

$ diff aaa.c 111.c


DES+Base64 encript/descrip

$ openssl enc -e -des -base64 -in aaa.c -out bbb.pem

$ openssl enc -d -base64 -des -in bbb.pem -out 111.c

$ diff aaa.c 111.c

//

[ubuntu] open files limit 변경하기[ubuntu] open files limit 변경하기

Posted at 2012. 9. 16. 13:40 | Posted in OS/Unix/Linux

redhat(centOS 등)계열은 ulimit -n 으로 쉽게 설정 가능하나,

우분투는 잘 안되네..

다음과 같이 해서 해결.


system-wide limit on the number of open files for all processes

$ cat /proc/sys/fs/file-max

148608

 

계정별 open file limit

$ ulimit -n

1024

 


다음 2개 파일을 수정 (box안의 내용을 추가)


/etc/pam.d/common-session ==> 안해도 됨 (/etc/pam.d/login 에 설정돼 있네..)

session    required   pam_limits.so


/etc/security/limits.conf

*   ?   nofile     6000

 


<reboot>

$ ulimit -n

6000

//

[Ubuntu] downgrade subversion 1.7 to 1.6[Ubuntu] downgrade subversion 1.7 to 1.6

Posted at 2012. 9. 16. 13:37 | Posted in OS/Unix/Linux

이클립스 subclipse를 깔았다가, javaHL 버전이 안맞느니 어쩌고 해서

인터넷을 뒤져 1.7.x로 업그레이드 했더니, 기존 repository와 호환이 안되는 문제 발생.

다시 1.6으로 다운그레이드 했다..


(1) 1.7 버전 제거

저장소 정보는 subversion 1.7.x로 맞춰진 상황..

시냅틱 패키지 관리자로 들어가서 subversion, libsn-java, libsvn1 을 삭제.


(2) 1.6 다운로드

패키지 다운로드: http://ppa.launchpad.net/anders-kaseorg/subversion-1.6/ubuntu/pool/main/s/subversion/


다음 3개를 다운로드 받고 순서대로 설치하면 된다.

libsvn1_1.6.5dfsg-1ubuntu1~hardy1~andersk1_amd64.deb

libsvn-java_1.6.5dfsg-1ubuntu1~hardy1~andersk1_amd64.deb

subversion_1.6.5dfsg-1ubuntu1~hardy1~andersk1_amd64.deb

 

(3) 설치

그냥 설치하면, libneon27, libdb4.6 의존성 어쩌고 하면서 안될텐데, 이 라이브러리들도 의존성 문제로 안된다.

강제로 설치해준다.


$ sudo apt-get -f install libneon27 libdb4.6


그리고, 위에서 다운 받은 3개를 순서대로 설치해준다.


$ sudo dpkg -i libsvn1_1.6.5dfsg-1ubuntu1~hardy1~andersk1_amd64.deb

$ sudo dpkg -i libsvn-java_1.6.5dfsg-1ubuntu1~hardy1~andersk1_amd64.deb

$ sudo dpkg -i subversion_1.6.5dfsg-1ubuntu1~hardy1~andersk1_amd64.deb

$ svn --version --quiet[버전 확인]

//