요 근래 몇달 간 계속 성능 테스트를 진행하다보니 각각 다른 서버에서 똑같은 명령어를 반복하는일만 수백번은 한듯하다.. 멍청하면 몸이 고생이라 했던가....(쿨럭)
이런 불편한점을 해결해보고자 찾던중 PSSH를 알게되었다!! 사용하다보니 편리할뿐만 아니라 초보 개발자인 나에게는 신세계가 따로 없었다!
PSSH는 parallel-ssh의 약자로 똑같은 파일의 복사나 명령어 실행을 다수의 리눅스기반 노드에서 실행해야할 경우 사용한다. 현재 PSSH 버전은 2.4이며, Python을 기반으로 만들어졌다.
본격적으로 PSSH의 설치와 사용법에대해 알아보도록 하자.
설치
설치방법은 parallel-ssh 홈페이지를 참고하였으며, 아래와 같다. (설치 환경 : Ubuntu 12.04)
(1) ~$ wget 'http://peak.telecommunity.com/dist/ez_setup.py' (2) ~$ sudo python ez_setup.py (3) https://code.google.com/p/parallel-ssh/source/browse/INSTALL에서 zip파일 다운 (4) ~$ sudo python setup.py install |
사용 방법
PSSH 사용 전에 먼저 다른서버에 ssh 공개키가 등록 되어있는지 확인하고, 등록 되어있지 않다면 먼저 등록하길 바란다. 지금부터 ssh 공개키가 등록되어있다는 전제하에 PSSH 사용법에 대해 알아보겠다.
옵션
먼저 실행시에 어떤옵션들을 줄수있는지 살펴보자.
-i : 결과 출력
-x : ssh 명령어 옵션
-h : 호스트 파일 불러오기
-ㅣ: 사용자 이름 입력
-A : 패스워드 입력
-O : ssh config 명령어 옵션
-H : 목적지 주소 기재(ip, hostname, domain 입력), 2개 이상의 서버에 명령할 경우 띄어쓰기 사용
1. "-h" 옵션 사용시 파일 형식
ip는 무조건 기재되어야 하며 ip대신 hostname도 사용 가능하다.
입력 요소 | 예제 |
ip | 192.168.0.1 |
ip, port | 192.168.0.1:30 |
ip, user | 192.168.0.1 root |
user, ip, port | root@192.168.0.1:30 |
2. ip, user 두 가지 요소 입력시의 예제
192.168.0.41부터 192.168.0.46까지 ip이고, embian이 user이다.
실행
앞서 보았던 "ip, user 두 가지 요소 입력시의 예제"와 같은 내용을 "dept.hosts"라는 이름의 파일로 저장해 두었다. 이 파일을 이용하여 간단한 테스트 몇 가지를 진행하였고, 이를 통해 사용 방법을 설명하겠다.
1. 총6개의 서버에 동일하게 ls 명령을 보낸다.
명령어 |
pssh -h dept.hosts -i ls |
결과 화면 |
|
명령어 실행시 1)몇번째로 실행되었는지 알려주는 번호와 2)해당 명령어 실행 시간 및 3)성공 여부, 4)실행 결과 등이 나타난다.
위의 예제 처럼 -h옵션을 사용하였을 경우 원격서버의 정보가 기입되어있는 파일명을 적어주어야 하며, -i 옵션을 사용 하였을 경우 해당 명령어의 실행결과를 출력한다.
만약 [SUCCESS]가 아닌 [FAILURE]가 나온다면 실행 결과가 아닌 error정보가 출력된다.
2. 총6개의 서버에 동일하게 ELK 디렉토리로 이동한 후 ls 명령을 보낸다.
명령어 |
pssh -h dept.hosts -i "cd ELK && ls" |
결과 화면 |
3. 총6개의 서버에 동일하게 ELK 디렉토리안의 log_generator 를 실행한다.
명령어 |
pssh -h dept.hosts -i "cd ELK/log_generator_v0.2 && java -jar etc/log_generator-0.0.5-SNAPSHOT.jar 1000" |
결과 화면 |
|
2, 3 의 예제처럼 여러개의 명령어를 붙여서 사용하고 싶다면 "명령어1 && 명령어2 && 명령어3"을 이용하면 된다.
여기까지 PSSH에대해 알아보았다. 잘 사용한다면 local 서버에서 간편하게 명령어 하나로 여러대의 서버를 제어할 수 있을듯하다. 열심히 익혀서 몸이 고생하는 일 없도록 하자.
참고
PSSH 설치 : https://code.google.com/p/parallel-ssh/source/browse/INSTALL
'Newbie's Log' 카테고리의 다른 글
빅오 표기 (0) | 2014.06.16 |
---|---|
Hadoop 맛보기 및 Storm과의 비교 (0) | 2014.05.27 |
Logstash와 Elasticsearch Performance Test -Elasticsearch Performance Test (0) | 2014.05.22 |
새내기개발자들을 위한 깨알 팁 -1탄 (0) | 2014.05.19 |
자주쓰는 리눅스 command (0) | 2014.05.16 |