clusterssh 프로그램 간단한 설치 및 사용방법 (여러대의 서버에 한꺼번에 명령 실행하는 프로그램)

문태준의 이미지

clusterssh

작성자 : 문태준 http://tunelinux.pe.kr http://database.sarang.net

clusterssh는 여러대의 서버에 동시에 접속하여 한꺼번에 여러대의 서버에 명령을 내릴 수 있는 프로그램이다.
kldp 에서 이야기를 주고받다가 정보를 보게 되어 테스팅을 해보았다. http://kldp.org/node/87110

http://clusterssh.sourceforge.net/

해당 사이트에서 파일을 다운로드받아서 직접 설치할 수 도 있고 SRPM 파일을 이용하여 RPM으로 만들 수도 있다. 이 프로그램은 X-Windows 프로그램이므로 먼저 X를 사용할 수 있는 환경이 되어 있어야 한다.

perl 로 되어 있는 프로그램으로 사전에 아래 두가지 펄 모듈이 설치되어 있어야 한다.
Tk
X11::Protocol
CPAN을 이용한 펄 모듈을 설치하는 방법에 대해서는 아래 사이트를 참고한다.
http://perlmania.or.kr/pmdocs/lcg/cpan_module.html

cpan 명령어를 실행하면 설정을 위하여 몇가지 물어보는 항목이 있으며 잘 모르면 대부분 기본값을 사용하면 된다.
중간에 CPAN의 FTP 사이트(미러 사이트) 선택하는 항목이 나오는데 여기서는 asia-korea 를 선택해주면 된다.

# cpan
cpan shell -- CPAN exploration and modules installation (v1.7601)
ReadLine support enabled
cpan> install Tk
cpan> install X11::Protocol

설치하면서 에러가 났는데 /usr/X11R6/include/ 파일을 찾았고 이 패키지는 xorg-x11-devel 에 해당한다.
그런데 다른 서버에서는 이 패키지가 없어도 설치가 잘 되었다. 아직 펄 패키지 구조에 대해서 잘 몰라서 무엇이 문제인지는 모르겠다.

이제 clusterssh 를 설치하면 된다.

사이트에서 소스를 받아서 아래와 같이 실행하면 된다. configure 에서 --prefix 옵션을 주어서 원하는 디렉토리에 설치할 수 있다.

$ ./configure
$ make
$ make install

SRPM을 이용하여 설치하는 경우이다.
clusterssh-3.19.1-1.src.rpm 파일을 다운로드받았다.
# rpm -ivh clusterssh-3.19.1-1.src.rpm
# cd /usr/src/redhat/SPECS/
# vi clusterssh.spec

여기서 "Requires: perl-Tk perl-X11-Protocol" 항목이 있는데 해당 모듈을 rpm 으로 설치한것이 아니고 CentOS 에서 기본 제공하지 않는 모듈이므로 이 부분을 주석처리하고 rpm을 만든다.

# rpmbuild -ba clusterssh.spec

# ls /usr/src/redhat/RPMS/noarch/
clusterssh-3.19.1-1.noarch.rpm

이제 이 프로그램을 설치한다.

# rpm -ivh clusterssh-3.19.1-1.noarch.rpm
error: Failed dependencies:
perl(Tk) >= 800.022 is needed by clusterssh-3.19.1-1.noarch
perl(Tk::Dialog) is needed by clusterssh-3.19.1-1.noarch
perl(Tk::LabEntry) is needed by clusterssh-3.19.1-1.noarch
perl(Tk::Xlib) is needed by clusterssh-3.19.1-1.noarch
perl(X11::Keysyms) is needed by clusterssh-3.19.1-1.noarch
perl(X11::Protocol) is needed by clusterssh-3.19.1-1.noarch
perl(X11::Protocol::Constants) is needed by clusterssh-3.19.1-1.noarch

위와 같이 에러가 나는데 --nodeps 옵션으로 강제설치한다.
프로그램에서 해당 perl 모듈에 대한 의존성을 검사하는 것이 있어서 문제가 생기는 듯한데 앞에서 해당 펄 모듈을 설치했다면 작동에는 문제가 없다.

# rpm --nodeps -ivh clusterssh-3.19.1-1.noarch.rpm
Preparing... ########################################### [100%]
1:clusterssh ########################################### [100%]

# rpm -ql clusterssh
/usr/bin/cssh
/usr/share/applications/clusterssh.desktop
/usr/share/doc/clusterssh-3.19.1
/usr/share/doc/clusterssh-3.19.1/AUTHORS
/usr/share/doc/clusterssh-3.19.1/COPYING
/usr/share/doc/clusterssh-3.19.1/ChangeLog
/usr/share/doc/clusterssh-3.19.1/NEWS
/usr/share/doc/clusterssh-3.19.1/README
/usr/share/icons/hicolor/24x24/apps/clusterssh.png
/usr/share/icons/hicolor/32x32/apps/clusterssh.png
/usr/share/icons/hicolor/48x48/apps/clusterssh.png
/usr/share/man/man1/cssh.1.gz

이제 프로그램을 사용해보자.

# cssh joon@test1.co.kr joon@test2.co.kr

위와 같이 원하는 사용자, 서버이름을 차례대로 입력하면 된다.

여기서 위의 서버, 유저명을 일일이 입력하지 않고 설정파일을 이용할 수 있다.
/etc/clusters 파일에 아래와 같이 지정한다.
[user@] [user@] [...]

# List of servers in live
live admin1@server1 admin2@server2 server3 server4

이제 cssh live 명령어로 간단히 실행을 할 수가 있다.

설정파일은 /etc/csshrc 또는 $HOME/.csshrc 파일에 둔다.
clusters 옵션을 이용하여 /etc/clusters 파일에 지정한 것 태그를 여러개 한꺼번에 이용하는 것도 가능하다.
man page 를 보면 쉽게 이해가 갈 것이다.

Forums: 
M.W.Park의 이미지

좋은 글 감사합니다.

근데, 이거 사용하면 서버 여러 대를 한번에 말아먹을 수 있는거죠? ^^;

-----
오늘 나의 취미는 끝없는, 끝없는 인내다. 1973 法頂

-----
오늘 의 취미는 끝없는, 끝없는 인내다. 1973 法頂

문태준의 이미지

네, 간단하게 말아먹겠죵...
그런 부담이야 항상 있는거죠. 스크립트 하나만 잘못 돌려도....
항상 사전에 충분한 테스팅을~

---------------------------
문태준
http://tunelinux.pe.kr
http://database.sarang.net

---------------------------
문태준
http://groups.google.co.kr/group/sysadminstudy 시스템어드민 공부모임
http://tunelinux.pe.kr
http://database.sarang.net

권순선의 이미지

재미있는 내용 잘 읽었습니다. +1점 날립니다~

pung96의 이미지

저는 항상 간단한 스크립트를 만들어서 썼었는데 이것도 좋네요.

pcharley의 이미지

작업 환경에 따라서 다르겠지만....
저의 경우는 이 명령으로 많은 시간을 절약하고있습니다.
매일 아침 모든 서버에 일괄적으로 적용하는 일이 있었는데...
각 서버마다 환경을 동일하게 맞추니 그전에 꽤 귀찮았던 일이
아주 간단하고 편해졌습니다...

환골탈태의 이미지

구성이 조금 다른 서버때문에 일괄작업시 신경쓰이는 부분이 있었고
그룹을 나누어서 사용하기도 했지만 웬지 한방에 작업하고 싶었습니다.
그래서 고민 쪼금 하다가...노후화된 서버들을 통합하고 정리해버렸습니다. =_=;;
이제는 한방에 명령어 날려버립니다. ^^
하지만 항상 명령어 칠때마다 겁이 나긴 합니다.
근데 한글 쓰기가 좀 어렵군요.. .
__________________________________________________
모두 다 Feisty로 바꾸었습니다.

__________________________________________________
모두 다 Hardy로 업그레이드 하고 있습니다.

deisys의 이미지

sudo명령에 timestamp를 0으로 주는것처럼,
이것도 너무 편해지면 위험한것 같습니다. :'(
스크립트 만들어서 쓰곤 하는데, 여기서 더 편해지면 큰일낼것만 같아 무서워요 ㅠㅠ

--
Deisys, in the middle of the world, being with you . . . . . .

sundance14의 이미지

newpolaris의 이미지

언제 한번 설치해보려나.

nEW

nEW

mapoo의 이미지

http://www.millardsoftware.com/
사이트에서 왼쪽상단의 PuTTYCS에서 다운 받으시면 됩니다.
Putty와 연동되므로, 무지 편합니다.

junilove의 이미지

윈도우 PC에서 서버들을 관리하고 별도로 clusterssh 설치가 버겁다면 넷사랑의 Xshell에 있는 입력창의 "모든 세션으로 전송" 기능을 사용해 보십시요.

Xshell에서도 ssh키값이나 자동으로 사용자 인증이 가능하니 관리 PC의 적절한 보안장치만 해주면 유용하리라고 생각합니다.

http://www.netsarang.co.kr/products/xsh_detail.html

queryman의 이미지

터미널중에 가장 좋은것 같습니다 ^^
-------------------------------------------------------------------------------------------
이놈의 IT 생활... 실증나고 짜증나고...
근데 왜 맨날 it관련 소식만 보고 ;;; 님휘


-------------------------------------------------------------------------------------------
이놈의 IT 생활... 실증나고 짜증나고...
근데 왜 맨날 it관련 소식만 보고 ;;; 님휘

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.