2013년 4월 11일 목요일

yum install java


인스톨 가능 패키지 확인 - yum list all
yum으로 인스톨 할 수 있는 패키지 리스트를 받아와서 java, jdk가 포함된 패키지가 있는지 확인해 봅니다.

명령 입력

 # yum list all | grep java | jdk
실행 결과

 java-1.6.0-openjdk.x86_64                    1:1.6.0.0-1.40.1.9.10.el6_1      @updates
 java-1.6.0-openjdk-devel.x86_64           1:1.6.0.0-1.40.1.9.10.el6_1      @updates
 java-1.6.0-openjdk-demo.x86_64           1:1.6.0.0-1.40.1.9.10.el6_1      updates 
 java-1.6.0-openjdk-javadoc.x86_64        1:1.6.0.0-1.40.1.9.10.el6_1      updates 
 java-1.6.0-openjdk-src.x86_64              1:1.6.0.0-1.40.1.9.10.el6_1      updates 
 ldapjdk-javadoc.x86_64                         4.18-6.el6                                  base  


 자바 설치
yum 명령어의 install을 이용해 java를 설치합니다.

명령 입력 

 # yum install java
실행 결과

Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.daum.net
 * extras: ftp.daum.net
 * updates: ftp.daum.net
Setting up Install Process
Resolving Dependencies
--> Running transaction check
--> Processing Dependency: java-1.6.0-openjdk = 1:1.6.0.0-1.36.b17.el6_0 for package: 1:java-1.6.0-openjdk-devel-1.6.0.0-1.36.b17.el6_0.x86_64
---> Package java-1.6.0-openjdk.x86_64 1:1.6.0.0-1.40.1.9.10.el6_1 set to be updated
--> Running transaction check
---> Package java-1.6.0-openjdk-devel.x86_64 1:1.6.0.0-1.40.1.9.10.el6_1 set to be updated
--> Finished Dependency Resolution
Dependencies Resolved
================================================================================
 Package                   Arch    Version                       Repository
                                                                           Size
================================================================================
Updating:
 java-1.6.0-openjdk        x86_64  1:1.6.0.0-1.40.1.9.10.el6_1   updates   25 M
Updating for dependencies:
 java-1.6.0-openjdk-devel  x86_64  1:1.6.0.0-1.40.1.9.10.el6_1   updates  8.5 M
Transaction Summary
================================================================================
Install       0 Package(s)
Upgrade       2 Package(s)
Total download size: 34 M
Is this ok [y/N]: y
Downloading Packages:
(1/2): java-1.6.0-openjdk-1.6.0.0-1.40.1.9.10.el6_1.x86_ |  25 MB     00:02     
(2/2): java-1.6.0-openjdk-devel-1.6.0.0-1.40.1.9.10.el6_ | 8.5 MB     00:00     
--------------------------------------------------------------------------------
Total                                           8.2 MB/s |  34 MB     00:04     
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Updating       : 1:java-1.6.0-openjdk-1.6.0.0-1.40.1.9.10.el6_1.x86_64    1/4 
  Updating       : 1:java-1.6.0-openjdk-devel-1.6.0.0-1.40.1.9.10.el6_1.x   2/4 
  Cleanup        : 1:java-1.6.0-openjdk-devel-1.6.0.0-1.36.b17.el6_0.x86_   3/4 
  Cleanup        : 1:java-1.6.0-openjdk-1.6.0.0-1.36.b17.el6_0.x86_64       4/4 
Updated:
  java-1.6.0-openjdk.x86_64 1:1.6.0.0-1.40.1.9.10.el6_1                                                                        
Dependency Updated:
  java-1.6.0-openjdk-devel.x86_64 1:1.6.0.0-1.40.1.9.10.el6_1                                                                  
Complete!     


 설치 확인
각 명령어의 -version 옵션을 이용해 설치 결과를 확인합니다.

명령 입력 

 # java -version
결과 확인
java version "1.6.0_20"
OpenJDK Runtime Environment (IcedTea6 1.9.10) (rhel-1.40.1.9.10.el6_1-x86_64)
OpenJDK 64-Bit Server VM (build 19.0-b09, mixed mode) 


명령 입력 

 # javac -version
결과 확인
javac 1.6.0_20

톰캣 구동 에러


자바를 새로 설치한 후

혹은

자바를 설치 한 후

혹은

자바를 업그레이드 한 후

혹은

자바를 버전업 한 후

뭐 암튼..

기존의 자바를 사용하지 않고 새로운 자바를 깐 다음 톰캣을 구동할때

WARNING: error instantiating 'org.apache.juli.ClassLoaderLogManager' referenced by java.util.logging.manager, class not found
java.lang.ClassNotFoundException: org.apache.juli.ClassLoaderLogManager not found
   <>
WARNING: error instantiating '1catalina.org.apache.juli.FileHandler,' referenced by handlers, class not found
java.lang.ClassNotFoundException: 1catalina.org.apache.juli.FileHandler,
   <>
Exception during runtime initialization
java.lang.ExceptionInInitializerError
   <>
Caused by: java.lang.NullPointerException
   <>
위와 같은 에러가 발생하면서 톰캣이 구동이 안된다면 두가지를 확인 해야 한다.

현재 로그인한 계정이 사용중인 java 가 새로 설치한 버전이 맞는지?
>>> java -version 으로 확인하고

현재 JAVA_HOME 환경 변수가 새로 설치한 java 의 디렉토리로 지정이 되어 있는지!
>>> [aadmin@ihd ~]$ set | grep JAVA_HOME
JAVA_HOME=/home/aadmin/java6
아니라면 현재 로그인한 계정의 환경변수에 JAVA_HOME 을 추가 해주고, 설치한 자바의 경로를 지정해 준다.

추가로
자바 처음 배울때 좀 헷갈렸던게.. 자바홈의 디렉토리를 어디로 지정해주냐 였는데..
보통 JDK를 깔면 jdk 어쩌구 하는 폴더가 생긴다.
JAVA_HOME=
위 변수에 대입될 폴더명은
하위에 bin, lib, man, sample 등등의 폴더를 포함하고 있는 그 폴더를 지정해 주면 된다..

윈도우에선 그냥 자바를 깔면 jdk 랑 jre 가 깔렸던거 같은데..
암튼 java, javac, javaw 등의 실행파일을 포함 하고 있는 bin 폴더를 포함하고 있는 부모 폴더를 지정해주면 될거다.

리눅스 문자열 치환


형식))
:%s/원본문자/치환문자/g
:1,$s/원본문자/치환문자/g
:1,10s/원본문자/치환문자/g


특정 파일 안에 있는 문자열 치환방법
find *.html -type f -exec sed -i 's/211.111.222.108/encoding.osstem.com/g' {} \;
find *.html -type f -exec sed -i 's/211.111.222.109/stream.osstem.com/g' {} \;



%는 문서 전체
1,10 는 1번째 줄에서 10번째 줄


ctrl v 를 눌러 가상 블럭을 설정하여 자기가 원하는 라인 부터 아래로 주욱 블럭을 설정
그리고 : 를 누르면

:'<,'> 와 같이 출력

:'<,'>s/원본문자/치환문자/g 와 같이 추가로 명령 타이핑

위에서 v 로 가상 블럭을 잡은 부분의 범위에만 치환

예))
:1,$s/^M//g
:1,$s/[Control]+v+m을 누른다.//g
:1,$s/"//g
:1,$s/row/--row/g


Vi(m) 사용시 ^M 없애기
                      출처:http://kltp.kldp.org/stories.php?story=05/02/17/4242887
vi(m)을 사용하다보면 윈도우즈에서 작업한 텍스트 파일에 ^M 문자가 붙는 경우를 종종 봅니다.
현재 vim에서는 도스 문서로 문서를 읽게 되면 이 문자가 붙지 않기도 하지만
종종 이 문자 때문에 문서 보기가 상당히 귀찮아 보일 때가 있습니다.
특히, SQL 백업 파일을 볼 때 이 문자가 붙기도 하는데 특정한 내용을 볼 때
이런 문자가 붙은 것을 보기는 상당히 힘들죠.
(sun의 파일을 aix에서 받을 때에도 이런 문제가 발생한다고 합니다)
이 문자는 ^M은 ^+M이 아니라 Control+v+m 입니다. 따라서, 다음에 이 문자를 없앨 때도
이렇게 타이핑을 하도록 합니다.

다음은 http://www.lug.or.kr/에 올라온 몇 개의 팁을 참조하여 정리한 것입니다.
생각보다 많은 방법들이 있을 수 있겠군요.

1. vi(m)이 열린 상태
1.1 문자 치환 명령 이용
다음과 같이 문자 치환 명령으로 이 문자를 없애도록 합니다.
:1,$s/^M//g

물론 이것의 입력은 다음과 같이 하도록 합니다.
:1,$s/[Control]+v+m을 누른다.//g

1.2 파일포맷 변경
vim 5.0 이상에서는 다음과 같이 명령을 내리도록 합니다

:set fileformat=unix
혹은
:set ff=unix
그리고, 저장하고 종료합니다.
:wq

이와 반대로 끝에 ^M붙이려면 다음과 같이 합니다.
:set fileformat=dos

이전버전에서는 다음과 같이 합니다.
:set textmode


2. 프롬프트 상에서
2.1 dos2unix 이용
dos2unix와 unix2dos를 이용하여 변환할 수 있습니다.

다음과 같이 하면 ^M 문자가 없어집니다.
$ dos2unix [문서명](여러 파일의 경우 *.확장자)

그리고 다음과 같이 하면 ^M 문자가 생기죠.
$ unix2dos [문서명]

2.2 cat과 tr을 이용한 방법
다음과 같이 하면 해당 파일의 ^M 문자가 없어집니다.
$ cat dos-file | tr -d ^M > unix-file

2.3 perl 스크립트
다음과 같이 하면 여러파일을 한번에 바꾸게 됩니다.

# perl -i -pe 's/\015//g' *.html

3. 다른 에디터의 사용
pico 라는 에디터 아실겁니다. 기능은 별로 없지만 빠르고 간편하죠.
vi나 emacs에서 ^M으로 잡히는 것이 pico에서는 안 잡히는데,
파일을 pico로 열어서 다시 이 문서를 저장합니다.
그리고 vi나 emacs로 읽으면 ^M이 모두 없어진 것을 알 수 있습니다.

4. man 페이지의 ^M, ^H 문자
man 페이지를 일반 화일로 바꾸면 ^M, ^H 등이 생기는데(예, 한컴리눅스 ^H)
다음과 같이 하면 이 문자를 없애고 볼 수 있습니다.
다음은 ls의 예입니다.

4.1 ps 또는 pdf로 변환하기
man -t 변경 시킬 화일 > 변경후 화일명.ps
man -t 변경 시킬 화일 > 변경후 화일명.pdf
예)
man -t ls > ls.ps 또는 ls.pdf로 보시면 됩니다.

4.2 텍스로 변환하기
man 변환시킬화일 | col -b> 변환후 화일명.txt
예)
man ls | col -b > ls.txt




1. 문서 처음부터 마지막까지의 char 를 _char_ 로 치환한다. 
:%s/char/_&_/g

2. 현재(커서위치)부터 마지막까지의 char 를 _char_ 로 치환한다.
:.,$s/char/_&_/g

3. buf_.*[255], buf_in[255], buf_get[255] 와 같은 문자열을 hello 로 변경한다. 
:1,10s/buf_.*\[255\]/hello/g

4. 숫자로만 이루어진 행 찾기는 다음과 같습니다.

/^\d\+$

^ : 행의 첫부분
\d : 0~9까지의 숫자
+ : 바로 앞의 글자 (여기서는 숫자)가 1개나 1개 이상 있음. (즉 숫자가 최소한 1개 있음)
$ : 행의 마지막 부분

5. 전체 문서에서 add 를 plus로 치환

:s/add/plus/g

6. 현재 편집중인 전체 문서에서 /etc/ 를 /etc/local/ 로 치환

:s/\/etc\//\/etc\/local\//g 

7. '앗싸좋구나108계단' 이 '좋구나108계단앗싸' 로 바뀝니다.

:%s/\(앗싸\)\(좋구나\)\(108계단\)/\2\3\1/g

8. 대소문자 구분없이 바꾸려면 i 옵션을 붙입니다. 이것은 ".vimrc" 파일을 고치지 않아도 작동합니다.

:%s/foo/bar/i

9. 정확하게 foo에 일치될 때만 바꿉니다. 즉 foo는 바꾸지만, foo 앞뒤로 다른 문자열이 붙어 있는 경우에는 바꾸지 않습니다.

:%s/\/bar

10. 정렬

123 def ghi
432 ius dkf
089 cdo lks

이걸 숫자를 가운데로, 두번째는 끝, 세번째 처음으로 보내려면

:%s/\([0-9]*\) \([a-z]*\) \([a-z]*\)/\3 \2 \1/g

11. 만약 3~5자리로 이루어진 모든 숫자를 검색하고 싶다면 다음과 같이 입력한다.

/[0123456789]\{3,5\} 또는
/[0-9]\{3,5\}

12. 만약 `ab'로 시작하는 소문자로 되어 있는 모든 단어를 삭제하려면 다음과 같이 입력한다.

:%s/ab[a-z]*//g

13. 만약 test라는 파일에 cpu가 들어있는 라인을 모조리 지우고자 한다면 vi mode에서 아래와 같이 사용한다.

:g/cpu/d

# g는 모든 라인에 적용한다라는 의미이고,
# d는 delete를 의미합니다.

14. stat0,stat1.....stat9 패턴이 있는 라인을 모조리 지우기

:g/stat[0-9]/d

15. 빈 줄 두 줄을 한 줄로 바꾸기

:%s/\n\n/\n/g

16. 두 칸을 한 칸으로 줄이기

:%s/ / /g

17. 탭을 스페이스 공백으로 바꾸기

:%s/\t/ /g

18. 마지막에 한 칸 띠우고 엔터된 것을 바로 엔터한 것으로 고치기

:%s/ $//g 또는
:%s/ \n/\n/g

19. 줄 첫 칸의 띠어쓰기를 없애기

:%s/^ //g

20. 잘못 바꾸기를 했을 때 되돌리려면 그냥 u 키를 누르면 됩니다.

2012년 11월 5일 월요일

VPN 프로토콜 비교- PPTP 대 L2TP 대 OpenVPN


VPN 프로토콜 비교- PPTP 대 L2TP 대 OpenVPN

VyprVPN은 다양한 프로토콜 옵션을 제공하며, 각각 독특한 기능과 장점이 있습니다. 귀하의 장치가 어떤 프로토콜을 지원하는지, 보안과 속도 사이의 균형을 어떻게 맞추는 것이 귀하에게 좋은지, 귀하의 네트워크에 의해 차단되는 프로토콜이 있는지 여부를 고려하십시오.


 PPTPL2TP/IPsecOpenVPN
호환성매우 다양한 데스크탑, 모바일 장치, 태블릿에 대한 지원이 내장되어 있습니다.매우 다양한 데스크탑, 모바일 장치, 태블릿에 대한 지원이 내장되어 있습니다.대부분의 데스크탑 컴퓨터에 지원
지원되는 시스템
  • Windows
  • Mac OS X
  • Linux
  • iOS
  • Android
  • DD-WRT
  • Windows
  • Mac OS X
  • Linux
  • iOS
  • Android
  • Windows
  • Mac OS X
  • Linux
암호화128-비트256-비트
  • 매우 빠르고 안전한 160-bit:
  • 256-bit: 가장 안전하지만 더 많은 CPU를 요구합니다
보안기본 암호화최고 수준의 암호화를 사용하십시오. 데이터 완결성 확인하며 데이터를 두 번 인캡슐레이션합니다.최고 수준의 암호화에 알려진 취약성은 없으며, 디지털 증명서를 통해 연결의 양 끝의 데이터를 인증합니다.
안정성매우 안정적이고 대부분의 와이파이 핫스팟이 수용함귀하의 장치가 NAT를 지원하는 경우 안정적신뢰할 수 없는 네트워크이나 무선 라우터, 와이파이 핫스팟에서조차 가장 안정성/신뢰성이 높습니다
설치대부분 운영 시스템에 내장되어 있으며 쉽게 설정할 수 있습니다맞춤형 설정 필요소프트웨어로 쉽게 설정
속도적은 암호화 오버헤드로 인해 빠름가장 많은 CPU 프로세싱 필요최상의 성능. 지연 시간이 긴 장거리 연결에서도 빠른 속도.
결론만약 OpenVPN이 본인의 기기에서 지원이 불가능하고 이용의 용이함과 속도가 안전보다 우선한다면 좋은 선택입니다.PPTP보다 더 안전하지만, 더 빠른 것은 아니며, 추가 설정이 필요합니다. 귀하의 장치에서 OpenVPN을 사용할 수 없으며 사용의 편이성이나 속도보다 보안이 중요한 경우 좋은 선택입니다.Windows Mac OS X 및 Linux 등의 데스크탑 컴퓨터에서 최선의 선택. 빠르고 안전하고 신뢰할 수 있습니다. OpenVPN는 추천할 수 있는 프로토콜 입니다
  • PPTP

    PPTP (포인트 투 포인트 터널링 프로토콜)은 빠른 속도로 기본적인 온라인 보안을 제공하는 양호한 경량의 VPN 프로토콜입니다. PPTP는 다양한 데스크탑과 모바일 장치에 내장되어 있으며, 128-비트 암호화를 이용합니다. PPTP는 귀하의 장치에서 OpenVPN을 이용할 수 없고 속도가 최우선 순위일 때 탁월한 선택입니다.
  • L2TP/IPsec

    IPsec (IP Security)을 이용한 L2TP (Layer 2 Tunneling Protocol)은 다양한 데스크탑과 모바일 장치에 내장된 매우 안전한 프로토콜입니다. L2TP/IPsec은 256-비트 암호화 기능을 갖추고 있지만, 추가적인 보안 오버헤드 때문에 PPTP보다 더 많이 CPU를 사용해야 합니다. L2TP/IPsec는 OpenVPN는 귀하의 장치에서 사용할 수 없는 경우 PPTP보다 강한 보안을 원하실 때 탁월한 선택입니다.
  • OpenVPN

    OpenVPN는 광대역 네트워크를 위한 고품질 VPN 프로토콜이지만, 모바일 장치와 태블릿은 지원하지 않습니다. OpenVPN은 256비트 암호화를 지원하며, 지연 시간이 긴 장거리 네트워크에서 매우 안정적이고 빠릅니다. PPTP보다 훨씬 보안성이 좋고, L2TP/IPsec보다 CPU 사용이 적게 필요합니다. OpenVPN은 Windows, Mac OS X, Linux를 포함한 데스크탑 컴퓨터에 추천하는 프로토콜입니다.
  • NAT 방화벽

    NAT 방화벽은 VPN 프로토콜이 아니라 VyprVPN을 사용할 때 원하지 않는 트래픽이 귀하의 장비까지 들어오지 못하도록 막는 패킷 필터입니다. 해커와 봇넷은 방어되지 않은 장비들을 찾아서 인터넷을 스캔하여 귀하의 신용카드 번호, 비밀번호, 민감한 재정적, 사적 데이터를 알아내거나 혹은 악성코드를 설치하려고 합니다. NAT 방화벽은 그러한 것들이 귀하의 컴퓨터나 휴대용 장비, 또는 태블릿에 접근하지 못하도록 막습니다.

2012년 11월 1일 목요일

putty를 여러개 편리하게 띄우는 소프트웨어

putty connection manager

패리티 메모리와 ECC 메모리의 원리


패리티 메모리와 ECC 메모리의 원리

▷ 패리티 메모리와 ECC 메모리의 원리
SDRAM이 나오기 전까지는 메모리는 에러를 정정하기 위한 패리티 비트가 존재했었다. 즉 전송되고 있는 데이터에 오류나 노이즈 여부를 알아내기 위해 데이터 맨 끝 부분 1bit를 이용해 데이터를 짝수 혹은 홀수로 항상 유지시키는 것이다. 이렇게 되면 1개 bit의 데이터가 오류가 났을 경우 오류 여부를 바로 알 수 있게 되어 오류가 난 데이터를 재전송 받을 수 있다. 물론 패리티 비트를 사용한다하더라도 2개 이상의 bit가 동시에 오류가 난다면 이를 검출 할 수 있는 방법은 없다. 하지만 패리티 비트가 없는 경우에 비해 데이터 전송에 신뢰성이 훨씬 높아지는 효과가 있다. 문제는 패리티 비트로 1bit의 데이터를 이용할 수 없기 때문에 사용 가능한 메모리 용량이 줄어든다는데 있다. 이 때문에 메모리 전송 오류가 많이 줄어든 오늘날에는 메모리에 패리티 비트를 아예 없애고 그 부분에 데이터를 보관하는 메모리를 사용하고 있다. 이것이 언버퍼드 메모리이다.
반면 극히 적인 빈도라도 메모리에서 전송된 데이터에 에러가 나면 곤란한 서버이상의 컴퓨터에서는 여전히 전송 에러 체크를 하게 되는데, 기전의 패리티 비트에 비해서 보다 진일보한 전송에러 체크 방식인 ECC를 사용한다.
ECC 방식은 패리티 비트처럼 단일 데이터에 체크 비트(Bit)를 끼워 넣어 전송하는 것이 아니라 전송되는 데이터를 체크할 수 있는 별도의 체크비트 데이터를 저장하고 이를 데이터들과 함께 전송한다. 이 별도의 체크 비트를 이용하면 1비트의 데이터 오류가 일어났을 때 오류가 일어난 위치를 정확하게 판별할 수 있다. 그래서 전송 오류를 자동으로 수정하는 것이 가능하다. 또한 동시에 2비트에서 오류가 일어났을 때에도 이를 감지해내고 사용자에게 이를 알릴 수 있다.
처음 ECC메모리를 사용하면 데이터의 오류를 동시에 2비트에서 난 것까지 검출이 가능하다. 1비트에서만 오류가 일어났을 때는 재전송 없이 자동으로 수정이 가능하다는 점에서 안정성과 전송 속도 면에서 신뢰성이 높다.

2012년 10월 3일 수요일

jboss 유지보수


start.sh
bootstrap/profile.xml
oracle-ds.xml
jbossweb.sar/server.xml
workers.properties ->

access.log -> 분석기(workload)
apm툴( 실시간)

loadrunner(hp)

apache jmeter (eclipse)
mat (eclipse)

jmx-console.

/bin
twiddle.sh
-s jnp://localhost:1099 -u admin -p admin_123 serverinfo -l | grep ThreadPool



worker.rfid11.connection_pool_size=64   ==> 256


http.org
튜닝 한글 내용