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 및 Ubuntu 및 Linux 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에 대한 추가 정보가 있는 경우 언제든지 의견을 게시해 주세요.