웹사이트 검색

여러 Linux 서버에서 명령을 실행하는 데 유용한 4가지 도구


이 기사에서는 여러 Linux 서버에서 동시에 명령을 실행하는 방법을 보여줍니다. 여러 서버에서 동시에 반복적인 일련의 명령을 실행하도록 설계된 널리 알려진 도구 중 일부를 사용하는 방법을 설명합니다. 이 가이드는 일반적으로 매일 여러 Linux 서버의 상태를 확인해야 하는 시스템 관리자에게 유용합니다.

이 기사에서는 모든 서버에 액세스할 수 있는 SSH 설정이 이미 있다고 가정하고, 두 번째로 여러 서버에 동시에 액세스할 때 모든 Linux 서버에 키 기반 비밀번호 없는 SSH를 설정하는 것이 적절하다고 가정합니다. 이는 무엇보다도 서버 보안을 강화하고 액세스를 쉽게 해줍니다.

추가 읽기: 원격 액세스를 단순화하기 위해 사용자 정의 SSH 연결을 구성하는 방법

1. PSSH - 병렬 SSH

Parallel-SSH는 여러 Linux 시스템에서 ssh를 병렬로 실행하기 위한 빠르고 사용하기 쉬운 오픈 소스 명령줄 기반 Python 도구 키트입니다. 여기에는 parallel-ssh, parallel-scp, parallel-rsync, parallel-slurp과 같은 다양한 목적을 위한 여러 도구가 포함되어 있습니다. >parallel-nuke(자세한 내용은 특정 도구의 매뉴얼 페이지를 참조하세요).

parallel-ssh를 설치하려면 먼저 Linux 시스템에 PIP를 설치해야 합니다.

sudo apt install python-pip python-setuptools 	#Debian/Ubuntu 
yum install python-pip python-setuptools	        #RHEL/CentOS 
dnf install python-pip python-setuptools	        #Fedora 22+

그런 다음 다음과 같이 pip를 사용하여 parallel-ssh를 설치합니다.

sudo pip install parallel-ssh

그런 다음 hosts라는 파일에 SSH 포트가 있는 원격 Linux 서버의 호스트 이름이나 IP 주소를 입력합니다(원하는 이름으로 지정할 수 있음).

vim hosts
192.168.0.10:22
192.168.0.11:22
192.168.0.12:22

파일을 저장하고 닫습니다.

이제 parallel-ssh를 실행하고 -h 옵션을 사용하여 호스트 파일과 지정된 모든 서버에서 실행될 명령을 지정합니다. -i 플래그는 각 서버에서 명령 실행이 완료되면 std 출력std 오류를 표시한다는 의미입니다.

parallel-ssh -h hosts "uptime; df -h"

또한 확인해야 할 사항: 여러 Linux 서버에서 여러 명령을 실행하는 방법

2. Pdsh – 병렬 원격 셸 유틸리티

Pdsh는 동시에 여러 Linux 서버에서 명령을 실행하기 위한 간단한 오픈 소스 병렬 원격 셸 도구입니다. 원격 명령을 실행하기 위해 슬라이딩 스레드 창을 사용합니다.

Linux 시스템에 Pdsh를 설치하려면 아래에서 적절한 명령을 실행하세요.

sudo apt install pdsh 	#Debian/Ubuntu 
yum install pdsh	        #RHEL/CentOS 
dnf install pdsh              #Fedora 22+

여러 서버에서 명령을 실행하려면 앞에서 설명한 대로 호스트 파일에 서버를 추가합니다. 그런 다음 표시된 대로 pdsh를 실행합니다. 플래그 -w는 호스트 파일을 지정하는 데 사용되며 -R은 원격 명령 모듈을 지정하는 데 사용됩니다(사용 가능한 원격 명령 모듈에는 ssh, rsh, exec, 기본값은 rsh입니다).

호스트 파일 앞의 ^를 기록해 두세요.

pdsh -w ^hosts -R ssh "uptime; df -h"

위와 같이 명령줄에서 실행할 원격 명령을 지정하지 않은 경우 pdsh는 대화형으로 실행되어 명령을 묻는 메시지를 표시하고 캐리지 리턴으로 종료되면 명령을 실행합니다. 자세한 내용은 pdsh 매뉴얼 페이지를 참조하십시오.

man pdsh 

3. 클러스터SSH

ClusterSSH는 여러 서버의 클러스터를 동시에 관리하기 위한 명령줄 도구입니다. 관리 콘솔과 xterm을 지정된 모든 서버에 실행하여 모든 서버에서 동일한 명령을 실행할 수 있도록 합니다.

clusterssh를 사용하려면 먼저 그림과 같이 로컬 Linux 컴퓨터에 설치하세요.

sudo apt install clusterssh    #Debian/Ubuntu 
yum install clusterssh         #RHEL/CentOS 
sudo dnf install clusterssh    #Fedora 22+

이제 설치가 완료되었으므로 다음과 같이 관리 콘솔과 원격 서버의 xterm을 동시에 엽니다. 모든 서버에서 명령을 실행하려면 xterm 입력 표시줄을 클릭하고 명령을 입력하십시오. 단일 호스트를 관리하려면 관리 콘솔을 사용하세요.

clusterssh linode cserver contabo
OR
clusterssh username@server1 username@server2 username@server3 

자세한 내용은 Clusterssh 매뉴얼 페이지를 참조하십시오.

man clusterssh

4. 앤서블

Ansible은 IT 프로세스를 자동화하는 오픈 소스이자 널리 사용되는 도구입니다. 시스템 구성 및 관리, 애플리케이션 배포 등에 사용됩니다.

Linux 시스템에 Ansible을 설치하려면 아래에서 적절한 명령을 실행하세요.

sudo apt install ansible       #Debian/Ubuntu 
yum install ansible            #RHEL/CentOS 
sudo dnf install ansible       #Fedora 22+

ansible을 설치한 후에는 /etc/anasible/hosts 파일에 서버의 호스트 이름이나 IP 주소를 추가할 수 있습니다.

sudo vim /etc/anasible/hosts

그룹(예: 웹서버)으로 지정하세요.

Ex 2: A collection of hosts belonging to the 'webservers' group
[webservers]
139.10.100.147
139.20.40.90
192.30.152.186

파일을 저장하고 닫습니다.

이제 위의 호스트 구성 파일에서 webserver 그룹에 지정된 모든 서버에 연결된 사용자와 가동 시간을 확인하려면 다음과 같이 ansible 명령줄 도구를 실행하면 됩니다.

-a 옵션은 모듈에 전달할 인수를 지정하는 데 사용되며 -u 플래그는 원격 서버에 연결하기 위한 기본 사용자 이름을 지정합니다. SSH를 통해.

ansible CLI 도구를 사용하면 최대 하나의 명령만 실행할 수 있습니다.

ansible webservers -a "w " -u admin

그게 다야! 이 기사에서는 널리 사용되는 도구를 사용하여 여러 원격 Linux 서버에서 동시에 명령을 실행하는 방법을 설명했습니다. 동일한 목적을 위해 이 문서에 포함되지 않은 도구를 알고 있는 경우 아래 의견 양식을 통해 알려주십시오.