Zoeken op website

PSSH - Voer opdrachten uit op meerdere externe Linux-systemen


Het lijdt geen twijfel dat OpenSSH een van de meest gebruikte en krachtige tools is die beschikbaar zijn voor Linux, waarmee je veilig verbinding kunt maken met externe Linux-systemen via een shell en waarmee je bestanden veilig van en naar externe systemen kunt overbrengen.

Maar het grootste nadeel van OpenSSH is dat je dezelfde opdracht niet in één keer op meerdere hosts kunt uitvoeren en OpenSSH is niet ontwikkeld om dergelijke taken uit te voeren.

Dit is waar de tool Parallel SSH of PSSH van pas komt, een op Python gebaseerde applicatie waarmee je tegelijkertijd opdrachten op meerdere hosts parallel kunt uitvoeren.

De tool PSSH bevat parallelle versies van OpenSSH en gerelateerde tools zoals:

  • pssh – is een programma voor het parallel uitvoeren van ssh op meerdere externe hosts.
  • pscp – is een programma voor het parallel kopiëren van bestanden naar een aantal hosts.
  • prsync – is een programma voor het efficiënt kopiëren van bestanden naar meerdere hosts tegelijk.
  • pnuke – doodt processen op meerdere externe hosts tegelijkertijd.
  • pslurp – kopieert bestanden parallel van meerdere externe hosts naar een centrale host.

Deze tools zijn goed voor systeembeheerders die met grote verzamelingen knooppunten in een netwerk werken.

Installeer PSSH of parallelle SSH op Linux

In deze handleiding zullen we stappen bekijken om de nieuwste versie van het PSSH-programma (dat wil zeggen versie 2.3.1) te installeren op RHEL-gebaseerde distributies zoals Fedora, CentOS Stream , Rocky & AlmaLinux en op Debian gebaseerde distributies zoals Ubuntu en Linux Mint met behulp van de pip-opdracht.

De opdracht pip is een klein programma (vervanging van het easy_install script) voor het installeren en beheren van de index van Python-softwarepakketten.

Op RHEL-gebaseerde distributies

Op RHEL distributies moet u eerst het pip pakket (d.w.z. python-pip) op uw systeem installeren om de PSSH te installeren programma met yum of dnf.

yum install python-pip
OR
dnf install python-pip

Nadat u de tool pip heeft geïnstalleerd, kunt u het pakket pssh installeren met de opdracht pip, zoals hieronder weergegeven.

pip install pssh  

Over op Debian gebaseerde distributies

Op op Debian gebaseerde distributies duurt het een minuut om pssh te installeren met behulp van de opdracht pip.

sudo apt install python-pip
sudo pip install pssh

Hoe gebruik ik pssh onder Linux?

Wanneer u pssh gebruikt, moet u een hostbestand maken met het aantal hosts, samen met het IP-adres en poortnummer dat u nodig heeft om verbinding te maken met externe systemen met behulp van pssh.

De regels in het hostbestand hebben de volgende vorm en kunnen ook lege regels en opmerkingen bevatten.

192.168.0.10:22
192.168.0.11:22

Voer één opdracht uit op meerdere Linux-servers

Je kunt elk afzonderlijk commando uitvoeren op verschillende of meerdere Linux-hosts in een netwerk door een pssh-commando uit te voeren. Er zijn veel opties om te gebruiken met pssh, zoals hieronder beschreven:

We zullen een paar manieren bekijken om commando's uit te voeren op een aantal hosts met behulp van pssh met verschillende opties.

  • Om het hostbestand te lezen, voegt u de optie -h host_file-name of --hosts host_file_name toe.
  • Om een standaard gebruikersnaam op te nemen op alle hosts die geen specifieke gebruiker definiëren, gebruikt u de optie -l gebruikersnaam of --user gebruikersnaam.
  • U kunt ook standaarduitvoer en standaardfouten weergeven wanneer elke host wordt voltooid. Door de optie -i of --inline te gebruiken.
  • Mogelijk wilt u ervoor zorgen dat verbindingen na het opgegeven aantal seconden worden onderbroken door de optie -t number_of_seconds op te nemen.
  • Om standaarduitvoer in een bepaalde map op te slaan, kunt u de optie -o /directory/path gebruiken.
  • Om een wachtwoord te vragen en dit naar SSH te sturen, gebruik je de -A optie.

Laten we een paar voorbeelden en het gebruik van pssh-opdrachten bekijken:

Voer opdrachten uit op meerdere Linux-hosts

1. Om echo “Hello TecMint ” uit te voeren op de terminal van de meerdere Linux-hosts door de rootgebruiker en om het wachtwoord van de rootgebruiker te vragen, voert u onderstaande opdracht uit.

Belangrijk: onthoud dat alle hosts in het hostbestand moeten worden opgenomen.

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

Opmerking: In het bovenstaande commando is “pssh-hosts” een bestand met de lijst met het IP-adres en het SSH-poortnummer van de externe Linux-server dat u opdrachten wilt uitvoeren.

Zoek schijfgebruik van meerdere Linux-hosts

2. Om het schijfruimtegebruik op meerdere Linux-servers in uw netwerk te achterhalen, kunt u als volgt één enkele opdracht uitvoeren.

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

Vind uptime van meerdere Linux-hosts

3. Als je de uptime van meerdere Linux-servers in één keer wilt weten, kun je de volgende opdracht uitvoeren.

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

U kunt de handmatige invoerpagina voor de opdracht pssh bekijken om vele andere opties te bekijken en meer manieren te ontdekken om pssh te gebruiken.

pssh --help

Samenvatting

Parallel SSH of PSSH is een goed hulpmiddel om opdrachten uit te voeren in een omgeving waarin een systeembeheerder met veel servers in een netwerk moet werken . Het maakt het gemakkelijk om opdrachten op afstand uit te voeren op verschillende hosts in een netwerk.

Ik hoop dat je deze handleiding nuttig vindt en in geval van aanvullende informatie over pssh of fouten tijdens de installatie of het gebruik ervan, kun je gerust een reactie plaatsen.