Hur man använder parallell ssh (PSSH) för att utföra ssh parallellt på ett antal Linux / Unix / BSD-servrar

Nyligen kom jag över ett trevligt litet smutsigt verktyg som heter pssh för att köra ett enda kommando på flera Linux / UNIX / BSD-servrar. Du kan enkelt öka din produktivitet med detta SSH-verktyg.

Mer om pssh

pssh är ett kommandoradsverktyg för att exekvera ssh parallellt på vissa värdar. Det specialiteter inkluderar:

  1. Skickar inmatning till alla processer
  2. Inmatning av ett lösenord till ssh
  3. Spara utdata till filer
  4. IT / sysadmin tar automatisering som patch-servrar
  5. Timing ut och mer

Låt oss se hur man installerar och använder pssh på Linux och Unix-liknande system.

pssh-welcome

Installation

Du kan installera pssh enligt din Linux- och Unix-variant. När paketet är installerat kan du få parallella versioner av openssh-verktygen. Ingår i installationen:

  1. Parallellt ssh (pssh-kommando)
  2. Parallell scp (pscp-kommando)
  3. Parallell rsync (prsync kommando)
  4. Parallell nuke (pnuke-kommando)
  5. Parallell slurp (pslurp kommando)

Installera pssh på Debian / Ubuntu Linux

Skriv följande apt-get-kommandot/apt kommando att installera pssh:
$ sudo apt installera pssh
OR
$ sudo apt-get install pssh
Provutgångar:

Fig. 01: Installera pssh på Debian / Ubuntu Linux

Fig. 01: Installera pssh på Debian / Ubuntu Linux

Installera pssh på Apple MacOS X

Skriv följande bryggningskommando:
$ brygga installera pssh
Provutgångar:

Fig. 02: Installera pssh på MacOS Unix

Fig. 02: Installera pssh på MacOS Unix

Installera pssh på FreeBSD unix

Skriv något av kommandot:
# cd / usr / ports / security / pssh / && gör installationen ren
OR
# pkg installera pssh
Provutgångar:

Fig. 03: Installera pssh på FreeBSD

Fig. 03: Installera pssh på FreeBSD

Installera pssh på RHEL / CentOS / Fedora Linux

Först sätt på EPEL repo och skriv följande kommando yum kommando:
$ sudo yum installera pssh
Provutgångar:

Fig. 04: Installera pssh på RHEL / CentOS / Red Hat Enterprise Linux

Fig. 04: Installera pssh på RHEL / CentOS / Red Hat Enterprise Linux

Installera pssh på Fedora Linux

Skriv följande dnf-kommando:
$ sudo dnf installera pssh
Provutgångar:

Fig. 05: Installera pssh på Fedora

Fig. 05: Installera pssh på Fedora

Installera pssh på Arch Linux

Skriv följande kommando:
$ sudo pacman -S python-pip $ pip installera pssh

Hur man använder pssh-kommandot

Först måste du skapa en textfil som heter värdfil från vilken pssh läser värdnamn. Syntaxen är ganska enkel. Varje rad i värdfilen är av formuläret [[E skyddas]] värd [: port] och kan innehålla tomma linjer och kommentarer linjer som börjar med "#". Här är min exempelfil med namnet ~ / .pssh_hosts_files:
$ cat ~/.pssh_hosts_files
[email protected]
[email protected]
[email protected]
[email protected]

Kör datumkommando alla värdar:
$ pssh -i -h ~ / .pssh_hosts_files datum
Provutgångar:

[1] 18: 10: 10 [SUCCESS] [E skyddas]
Sun Feb 26 18:10:10 IST 2017
[2] 18:10:10 [SUCCESS] [E skyddas]
Sun Feb 26 18:10:10 IST 2017
[3] 18:10:10 [SUCCESS] [E skyddas]
Sun Feb 26 18:10:10 IST 2017
[4] 18:10:10 [SUCCESS] [E skyddas]
Sun Feb 26 18: 10: 10 IST 2017

Kör upptidskontrollen på varje värd:
$ pssh -i -h ~ / .pssh_hosts_files upptid
Provutgångar:

[1] 18: 11: 15 [SUCCESS] [E skyddas]
 18:11:15 up  2:29,  0 users,  load average: 0.00, 0.00, 0.00
[2] 18:11:15 [SUCCESS] [E skyddas]
 18:11:15 up 19:06,  0 users,  load average: 0.13, 0.25, 0.27
[3] 18:11:15 [SUCCESS] [E skyddas]
 18:11:15 up  1:55,  0 users,  load average: 0.00, 0.00, 0.00
[4] 18:11:15 [SUCCESS] [E skyddas]
 6: 11PM upp 1-dag, 21: 38, 0-användare, lägsta medelvärden: 0.12, 0.14, 0.09

Du kan nu automatisera vanliga sysadminuppgifter som att klistra in alla servrar:
$ pssh -h ~ / .pssh_hosts_files - sudo yum-en uppdatering
OR
$ pssh -h ~ / .pssh_hosts_files - sudo apt-get -y uppdatering $ pssh -h ~ / .pssh_hosts_files - sudo apt-get -y uppgradering

Hur använder jag pssh för att kopiera filen till alla servrar?

Syntaxen är:
pscp -h ~ / .pssh_hosts_files src dest
För att kopiera $ HOME / demo.txt till / tmp / på alla servrar, skriv:
$ pscp -h ~ / .pssh_hosts_files $ HOME / demo.txt / tmp /
Provutgångar:

[1] 18: 17: 35 [SUCCESS] [E skyddas]
[2] 18: 17: 35 [SUCCESS] [E skyddas]
[3] 18: 17: 35 [SUCCESS] [E skyddas]
[4] 18: 17: 35 [SUCCESS] [E skyddas]

Eller använd kommandot prsync för effektiv kopiering av filer:
$ prsync -h ~ / .pssh_hosts_files / etc / passwd / tmp / $ prsync -h ~ / .pssh_hosts_files * .html / var / www / html /

Hur dödar jag processer parallellt på ett antal värdar?

Använd kommandot pnuke för att döda processer parallellt på ett antal värdar. Syntaxen är:
$ pnuke -h .pssh_hosts_files processnamn
### döda nginx och firefox på värdar:
$ pnuke -h ~ / .pssh_hosts_files firefox $ pnuke -h ~ / .pssh_hosts_files nginx
Se pssh / pscp kommandos man sidor för mer information.

Slutsats

pssh är ett ganska bra verktyg för parallell SSH-kommando utförande på många servrar. Det är ganska användbart om du har 5- eller 10-servrar. Men om du behöver göra något komplicerat bör du titta på Ansible och co.
källa

relaterade Post

Lämna ett svar

Den här sidan använder Akismet för att minska spam. Läs om hur din kommentardata behandlas.