pssh 는 Parallel-ssh 로써, 동일한 명령을 여러대의 서버에 동시에 실행할 때 유용합니다.
먼저 –help 옵션을 통해 도움말을 확인 할 수 있습니다.
- –help : 도움말을 보여줍니다.
- -h : 호스트 목록이 작성되어 있는 파일을 지정합니다.
- -l : 실행하는 유저 이름을 지정합니다 (옵션)
- -P : 결과를 출력합니다 (옵션)
특이한 점은 pssh 2.2 버전 에서는 pssh로 명령을 주지만, 2.3 버전에서는 parallel-ssh 로 명령을 주어야 하는 것 같습니다. 자세한 사용법은 아래 우분투 메뉴얼을 참고하실 수 있습니다.
Parallel-ssh Manuals
ubuntu manuals
먼저 가장 중요한 것은 -h 옵션으로 명령이 전송될 호스트 목록을 파일 내에 작성하고 이를 지정해주어야 합니다. 아래와 같이 host 목록을 적을 host.list 파일을 생성하고 안에 host 를 작성하여 저장합니다.
이제 명령을 수행할 수 있는데, 서버에 정상적으로 명령이 가지 않을 경우 아래와 같이 전송이 실패하게 됩니다.
전송이 성공적으로 이루어진 경우 다음과 같습니다.
여기서 기본적인 명령 실행으로는 명령의 성공여부만 알 수 있고 결과물을 받아볼 수 없습니다. 결과물 출력이 필요하면 -P 옵션을 통해 출력하실 수 있습니다. 하지만 본 옵션의 경우 각 호스트의 메시지 수행 후 실행 순서 없이 도착에 따라 출력함으로써 순서가 뒤죽박죽되어 보일 수 있습니다. -i 옵션을 사용할 경우 각 호스트별 출력 결과를 보실 수 있습니다.
여기서 우리가 경험할 수 있는 종료 상태는 다음과 같습니다.
- 0 : Success
- 1 : Miscellaneous error
- 2 : Syntax or usage error
- 3 : At least one process was killed by a signal or timed out
- 4 : All process completed, but at least one ssh process reported an error (exit status 255)
- 5 : There were no ssh errors, but at least one remote command had a non-zero exit status