웹사이트 검색

PSSH - 여러 원격 Linux 시스템에서 명령 실행


의심의 여지 없이 OpenSSH는 Linux에서 사용할 수 있는 가장 널리 사용되고 강력한 도구 중 하나입니다. 이를 통해 셸을 통해 원격 Linux 시스템에 안전하게 연결하고 원격 시스템과 안전하게 파일을 전송할 수 있습니다.

그러나 OpenSSH의 가장 큰 단점은 여러 호스트에서 동일한 명령을 동시에 실행할 수 없으며 OpenSSH는 이러한 작업을 수행하도록 개발되지 않았다는 것입니다.

여기서 여러 호스트에서 명령을 동시에 병렬로 실행할 수 있는 Python 기반 애플리케이션인 병렬 SSH 또는 PSSH 도구가 유용하게 사용됩니다.

PSSH 도구에는 OpenSSH의 병렬 버전과 다음과 같은 관련 도구가 포함되어 있습니다.

  • pssh – 여러 원격 호스트에서 ssh를 병렬로 실행하는 프로그램입니다.
  • pscp – 여러 호스트에 병렬로 파일을 복사하는 프로그램입니다.
  • prsync – 파일을 여러 호스트에 동시에 효율적으로 복사하는 프로그램입니다.
  • pnuke – 여러 원격 호스트의 프로세스를 병렬로 종료합니다.
  • pslurp – 여러 원격 호스트에서 중앙 호스트로 파일을 병렬로 복사합니다.

이러한 도구는 네트워크의 대규모 노드 모음을 사용하여 작업하는 시스템 관리자에게 적합합니다.

Linux에 PSSH 또는 병렬 SSH 설치

이 가이드에서는 Fedora, CentOS Stream과 같은 RHEL 기반 배포판에 최신 버전의 PSSH(예: 버전 2.3.1) 프로그램을 설치하는 단계를 살펴보겠습니다. , Rocky & AlmaLinux 및 UbuntuLinux Mint와 같은 Debian 기반 배포판은 pip 명령을 사용합니다.

pip 명령은 Python 소프트웨어 패키지 색인을 설치하고 관리하기 위한 작은 프로그램(easy_install 스크립트 대체)입니다.

RHEL 기반 배포판

RHEL 배포판에서 PSSH를 설치하려면 먼저 시스템에 pip 패키지(예: python-pip)를 설치해야 합니다. yum 또는 dnf를 사용하는 프로그램입니다.

yum install python-pip
OR
dnf install python-pip

pip 도구를 설치한 후에는 아래와 같이 pip 명령을 사용하여 pssh 패키지를 설치할 수 있습니다.

pip install pssh  

데비안 기반 배포판

Debian 기반 배포판에서는 pip 명령을 사용하여 pssh를 설치하는 데 1분 정도 걸립니다.

sudo apt install python-pip
sudo pip install pssh

Linux에서 pssh를 어떻게 사용합니까?

pssh를 사용할 때 pssh를 사용하여 원격 시스템에 연결하는 데 필요한 IP 주소 및 포트 번호와 함께 호스트 수를 포함하는 호스트 파일을 만들어야 합니다.

호스트 파일의 행은 다음 형식을 따르며 빈 행과 주석을 포함할 수도 있습니다.

192.168.0.10:22
192.168.0.11:22

여러 Linux 서버에서 단일 명령 실행

pssh 명령을 실행하면 네트워크에 있는 서로 다른 Linux 호스트 또는 여러 Linux 호스트에서 단일 명령을 실행할 수 있습니다. 아래 설명과 같이 pssh와 함께 사용할 수 있는 다양한 옵션이 있습니다.

다양한 옵션과 함께 pssh를 사용하여 여러 호스트에서 명령을 실행하는 몇 가지 방법을 살펴보겠습니다.

  • 호스트 파일을 읽으려면 -h 호스트 파일 이름 또는 --hosts 호스트 파일 이름 옵션을 포함합니다.
  • 특정 사용자를 정의하지 않는 모든 호스트에 기본 사용자 이름을 포함하려면 -l 사용자 이름 또는 --user 사용자 이름 옵션을 사용하세요.
  • 각 호스트가 완료될 때 표준 출력 및 표준 오류를 표시할 수도 있습니다. -i 또는 --inline 옵션을 사용합니다.
  • -t number_of_seconds 옵션을 포함하여 지정된 시간(초) 후에 연결 시간이 초과되도록 할 수 있습니다.
  • 특정 디렉토리에 표준 출력을 저장하려면 -o /directory/path 옵션을 사용할 수 있습니다.
  • 비밀번호를 요청하고 이를 SSH로 보내려면 -A 옵션을 사용하세요.

pssh 명령의 몇 가지 예와 사용법을 살펴보겠습니다.

여러 Linux 호스트에서 명령 실행

1. 루트 사용자가 여러 Linux 호스트의 터미널에서 echo “Hello TecMint ”를 실행하고 루트 사용자의 비밀번호를 묻는 메시지를 표시하려면 아래 명령을 실행하세요.

중요: 모든 호스트가 호스트 파일에 포함되어야 한다는 점을 기억하세요.

pssh -h pssh-hosts -l root -A echo "Hello TecMint"

Warning: do not enter your password if anyone else has superuser
privileges or access to your account.
Password: 
[1] 15:54:55 [SUCCESS] 192.168.0.10:22
[2] 15:54:56 [SUCCESS] 192.168.0.11:22

참고: 위 명령에서 "pssh-hosts"는 원격 Linux 서버의 IP 주소 및 SSH 포트 번호 목록이 포함된 파일입니다. 명령을 실행하려는 경우.

여러 Linux 호스트의 디스크 사용량 찾기

2. 네트워크에 있는 여러 Linux 서버의 디스크 공간 사용량을 확인하려면 다음과 같이 단일 명령을 실행할 수 있습니다.

pssh -h pssh-hosts -l root -A -i "df -hT"

Warning: do not enter your password if anyone else has superuser
privileges or access to your account.
Password: 
[1] 16:04:18 [SUCCESS] 192.168.0.10:22
Filesystem     Type   Size  Used Avail Use% Mounted on
/dev/sda3      ext4    38G  4.3G   32G  12% /
tmpfs          tmpfs  499M     0  499M   0% /dev/shm
/dev/sda1      ext4   190M   25M  156M  14% /boot

[2] 16:04:18 [SUCCESS] 192.168.0.11:22
Filesystem              Type      Size  Used Avail Use% Mounted on
/dev/mapper/centos-root xfs        30G  9.8G   20G  34% /
devtmpfs                devtmpfs  488M     0  488M   0% /dev
tmpfs                   tmpfs     497M  148K  497M   1% /dev/shm
tmpfs                   tmpfs     497M  7.0M  490M   2% /run
tmpfs                   tmpfs     497M     0  497M   0% /sys/fs/cgroup
/dev/sda1               xfs       497M  166M  332M  34% /boot

여러 Linux 호스트의 가동 시간 찾기

3. 여러 Linux 서버의 가동 시간을 한 번에 알고 싶다면 다음 명령을 실행할 수 있습니다.

pssh -h pssh-hosts -l root -A -i "uptime"
Warning: do not enter your password if anyone else has superuser
privileges or access to your account.
Password: 
[1] 16:09:03 [SUCCESS] 192.168.0.10:22
 16:09:01 up  1:00,  2 users,  load average: 0.07, 0.02, 0.00

[2] 16:09:03 [SUCCESS] 192.168.0.11:22
 06:39:03 up  1:00,  2 users,  load average: 0.00, 0.06, 0.09

pssh 명령에 대한 수동 입력 페이지를 보면 pssh를 사용하는 더 많은 방법을 알아보기 위한 다양한 옵션을 얻을 수 있습니다.

pssh --help

요약

병렬 SSH 또는 PSSH시스템 관리자가 네트워크의 많은 서버와 작업해야 하는 환경에서 명령을 실행하는 데 사용하기에 좋은 도구입니다. . 이를 통해 네트워크의 다른 호스트에서 원격으로 명령을 쉽게 실행할 수 있습니다.

이 가이드가 유용하길 바라며 pssh 설치 또는 사용 중 오류나 pssh에 대한 추가 정보가 있는 경우 언제든지 의견을 게시해 주세요.