PSSH: esegui comandi su più sistemi Linux remoti
Non c'è dubbio che OpenSSH sia uno degli strumenti più utilizzati e potenti disponibili per Linux, che consente di connettersi in modo sicuro a sistemi Linux remoti tramite una shell e di trasferire file in modo sicuro da e verso sistemi remoti.
Ma lo svantaggio più grande di OpenSSH è che non puoi eseguire lo stesso comando su più host contemporaneamente e OpenSSH non è sviluppato per eseguire tali compiti.
È qui che torna utile lo strumento Parallel SSH o PSSH, un'applicazione basata su Python che consente di eseguire comandi su più host in parallelo contemporaneamente.
Lo strumento PSSH include versioni parallele di OpenSSH e strumenti correlati come:
- pssh – è un programma per eseguire ssh in parallelo su più host remoti.
- pscp – è un programma per copiare file in parallelo su più host.
- prsync – è un programma per copiare in modo efficiente file su più host in parallelo.
- pnuke: termina i processi su più host remoti in parallelo.
- pslurp: copia i file da più host remoti a un host centrale in parallelo.
Questi strumenti sono utili per gli amministratori di sistema che si trovano a lavorare con grandi raccolte di nodi su una rete.
Installa PSSH o SSH parallelo su Linux
In questa guida, esamineremo i passaggi per installare l'ultima versione del programma PSSH (ovvero la versione 2.3.1) su distribuzioni basate su RHEL come Fedora, CentOS Stream , Rocky & AlmaLinux e distribuzioni basate su Debian come Ubuntu e Linux Mint utilizzando il comando pip.
Il comando pip è un piccolo programma (sostituto dello script easy_install) per l'installazione e la gestione dell'indice dei pacchetti software Python.
Sulle distribuzioni basate su RHEL
Nelle distribuzioni RHEL, devi prima installare il pacchetto pip (ad esempio, python-pip) sul tuo sistema per installare PSSH programma utilizzando yum o dnf.
yum install python-pip
OR
dnf install python-pip
Dopo aver installato lo strumento pip, puoi installare il pacchetto pssh utilizzando il comando pip, come mostrato di seguito.
pip install pssh
Sulle distribuzioni basate su Debian
Sulle distribuzioni basate su Debian, è necessario un minuto per installare pssh utilizzando il comando pip.
sudo apt install python-pip
sudo pip install pssh
Come posso usare PSSH in Linux?
Quando usi pssh devi creare un file host con il numero di host insieme all'indirizzo IP e al numero di porta necessari per connetterti ai sistemi remoti usando pssh.
Le righe nel file host sono nel formato seguente e possono includere anche righe vuote e commenti.
192.168.0.10:22
192.168.0.11:22
Esegui un singolo comando su più server Linux
Puoi eseguire qualsiasi singolo comando su diversi o più host Linux su una rete eseguendo un comando pssh. Esistono molte opzioni da utilizzare con pssh come descritto di seguito:
Esamineremo alcuni modi per eseguire comandi su un numero di host utilizzando pssh con diverse opzioni.
- Per leggere il file host, includi l'opzione
-h host_file-name
o--hosts host_file_name
. - Per includere un nome utente predefinito su tutti gli host che non definiscono un utente specifico, utilizza l'opzione
-l
nome utente o--user nome utente
. - È inoltre possibile visualizzare l'output standard e l'errore standard man mano che ciascun host completa. Utilizzando l'opzione
-i
o--inline
. - Potresti voler far scadere il timeout delle connessioni dopo il numero di secondi specificato includendo l'opzione
-t numero_di_secondi
. - Per salvare l'output standard in una determinata directory, puoi utilizzare l'opzione
-o /directory/path
. - Per richiedere una password e inviarla a SSH, utilizza l'opzione
-A
.
Vediamo alcuni esempi e utilizzo dei comandi pssh:
Esegui comandi su più host Linux
1. Per eseguire echo “Hello TecMint” sul terminale di più host Linux da parte dell'utente root e richiedere la password dell'utente root, esegui questo comando di seguito.
Importante: ricorda che tutti gli host devono essere inclusi nel file host.
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
Nota: nel comando precedente “pssh-hosts” è un file con l'elenco degli indirizzi IP del server Linux remoto e il numero di porta SSH che desideri eseguire i comandi.
Trova l'utilizzo del disco di più host Linux
2. Per scoprire l'utilizzo dello spazio su disco su più server Linux sulla tua rete, puoi eseguire un singolo comando come segue.
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
Trova il tempo di attività di più host Linux
3. Se desideri conoscere il tempo di attività di più server Linux contemporaneamente, puoi eseguire il comando seguente.
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
Puoi visualizzare la pagina di immissione manuale del comando pssh per ottenere molte altre opzioni per scoprire altri modi di utilizzare pssh.
pssh --help
Riepilogo
Parallel SSH o PSSH è un ottimo strumento da utilizzare per eseguire comandi in un ambiente in cui un amministratore di sistema deve lavorare con molti server su una rete . Semplificherà l'esecuzione remota dei comandi su diversi host su una rete.
Spero che questa guida ti sia utile e in caso di informazioni aggiuntive su PSSH o errori durante l'installazione o l'utilizzo, sentiti libero di pubblicare un commento.