Linux

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 IST 10 [2017] 2: 18: 10 [SUCCESS] [E skyddas]
Sun Feb 26 18: 10 IST 10 [2017] 3: 18: 10 [SUCCESS] [E skyddas]
Sun Feb 26 18: 10 IST 10 [2017] 4: 18: 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 upp 2: 29, 0-användare, belastningsgenomsnitt: 0.00, 0.00, 0.00 [2] 18: 11: 15 [SUCCESS] [E skyddas]
 18: 11: 15 upp 19: 06, 0-användare, belastningsgenomsnitt: 0.13, 0.25, 0.27 [3] 18: 11: 15 [SUCCESS] [E skyddas]
 18: 11: 15 upp 1: 55, 0-användare, belastningsgenomsnitt: 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

Tags

Lämna ett svar

E-postadressen publiceras inte. Obligatoriska fält är markerade *

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

Tillbaka till toppen knappen