Ricerca nel sito web

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.