웹사이트 검색

DSH(댄서의 셸) - 여러 Linux 호스트에서 명령 실행


시스템 관리자는 가급적이면 물리적인 움직임을 최소화하면서 짧은 시간 내에 수많은 시스템을 모니터링하고 관리할 수 있는 능력의 중요성을 잘 알고 있습니다. 소규모 클라우드 환경이든 대규모 서버 클러스터이든 컴퓨터를 중앙에서 관리하는 능력은 필수적입니다.

이를 부분적으로 수행하기 위해 사용자가 여러 컴퓨터에서 명령을 실행할 수 있게 해주는 DSH(댄서 쉘/분산 쉘)라는 멋진 작은 도구를 사용하는 방법을 보여 드리겠습니다.

DSH란 무엇입니까?

DSH는 대부분의 주요 Linux 배포판에서 무료로 사용할 수 있는 도구인 'Distributed Shell' 또는 'Dancer's Shell'의 약어입니다. 배포판의 패키지 저장소에 소스가 포함되어 있지 않은 경우 소스에서 쉽게 빌드할 수 있습니다.

Linux에 DSH(분산 셸) 설치

이 튜토리얼에서는 Debian/Ubuntu 환경을 가정합니다. 다른 배포판을 사용하는 경우 패키지 관리자를 적절한 명령으로 대체하십시오.

Debian 기반 배포판에서는 터미널에서 다음 apt 명령을 사용하여 DSH를 설치할 수 있습니다.

sudo apt install dsh

RHEL 기반 배포판에서는 소스 tar 볼에서 컴파일해야 하지만 그렇게 하기 전에 'libdshconfig' 라이브러리를 컴파일하고 설치해야 합니다.

wget http://www.netfort.gr.jp/~dancer/software/downloads/libdshconfig-0.20.10.cvs.1.tar.gz
tar xfz libdshconfig*.tar.gz 
cd libdshconfig-*
./configure ; make
sudo make install

그런 다음 dsh를 컴파일하고 설치합니다.

wget https://www.netfort.gr.jp/~dancer/software/downloads/dsh-0.22.0.tar.gz
tar xfz dsh-0.22.0.tar.gz
cd dsh-*
./configure ; make 
sudo make install

Linux에서 DSH를 사용하는 방법

기본 구성 파일 "/etc/dsh/dsh.conf"(Debian의 경우) 및 "/usr/local/etc/dsh.conf " ”(Red Hat의 경우)는 매우 간단하지만 rsh는 암호화되지 않은 프로토콜이므로 SSH를 원격 셸로 사용하겠습니다.

원하는 텍스트 편집기를 사용하여 다음 줄을 찾으세요.

remoteshell =rsh

다음과 같이 변경합니다.

remoteshell =ssh

원하는 경우 여기에서 전달할 수 있는 다른 옵션이 있으며 dsh 매뉴얼 페이지에서 찾을 수 있는 옵션이 많이 있습니다. 지금은 기본값을 수락하고 다음 파일인 /etc/dsh/machines.list(Debian의 경우)를 살펴보겠습니다.

Red Hat 기반 시스템의 경우 '/usr/local/etc/'에 'machines.list'라는 파일을 만들어야 합니다. 예배 규칙서.

여기의 구문은 매우 쉽습니다. 사용자가 해야 할 일은 컴퓨터의 자격 증명(호스트 이름, IP 주소 또는 FQDN)을 한 줄에 하나씩 입력하는 것뿐입니다.

참고: 둘 이상의 컴퓨터에 동시에 액세스하는 경우 모든 컴퓨터에 키 기반 비밀번호 없는 SSH를 설정하는 것이 좋습니다. 이는 액세스 용이성을 제공할 뿐만 아니라 보안 측면에서도 시스템을 강화합니다.

내 "/etc/dsh/machines.list" 또는 "/usr/local/etc/machines.list" 파일은 다음과 같습니다.

172.16.25.125
172.16.25.126

액세스하려는 머신의 자격 증명을 입력한 후에는 모든 머신에 대한 가동 시간과 같은 간단한 명령을 실행해 보겠습니다.

dsh -aM -c uptime

샘플 출력:

172.16.25.125: 05:11:58 up 40 days, 51 min, 0 users, load average: 0.00, 0.01, 0.05
172.16.25.126: 05:11:47 up 13 days, 38 min, 0 users, load average: 0.00, 0.01, 0.05

그렇다면 'dsh' 명령은 무엇을 합니까?

꽤 간단합니다. 먼저, dsh를 실행하고 "uptime" 명령을 "에 보내라는 "-a" 옵션을 전달했습니다. >ALL''은 '/etc/dsh/machines.list'에 나열된 머신입니다.

다음으로, "머신 이름"("/etc/dsh/machines.list<에 지정됨)을 반환하도록 지시하는 "-M" 옵션을 지정했습니다.“) uptime 명령의 출력과 함께 표시됩니다. (여러 컴퓨터에서 명령을 실행할 때 정렬하는 데 매우 유용합니다.)

"-c" 옵션은 "실행할 명령", 이 경우 "가동 시간"을 나타냅니다.

DSH는 "/etc/dsh/groups/" 파일에서 시스템 그룹으로 구성할 수도 있습니다. 여기서 파일은 다음과 같은 형식의 시스템 목록이 포함되어 있습니다. "/etc/dsh/machines.list" 파일. 그룹에서 dsh를 실행할 때 '-g' 옵션 뒤에 groupname을 지정하세요.

Red Hat 기반 시스템의 경우 '/usr/local/etc/' 디렉터리에 'groups'라는 폴더를 만들어야 합니다. 해당 "groups" 디렉토리에 "cluster"라는 파일을 생성합니다.

예를 들어, “cluster” 그룹 파일 “/etc/dsh/groups/cluster에 나열된 모든 시스템에서 “w” 명령을 실행합니다. " 또는 "/usr/local/etc/groups/cluster".

dsh -M -g cluster -c w

DSH는 훨씬 더 많은 유연성을 제공하며 이 튜토리얼에서는 표면적인 부분만 설명합니다. 명령 실행 외에도 DSH를 사용하여 파일 전송, 소프트웨어 설치, 경로 추가 등을 수행할 수 있습니다.

대규모 네트워크의 책임을 맡은 시스템 관리자에게 이는 매우 귀중한 것입니다.