PSSH - Pokrenite komande na više udaljenih Linux sistema


Nema sumnje da je OpenSSH jedan od najčešće korišćenih i najmoćnijih alata dostupnih za Linux, koji vam omogućava da se bezbedno povežete sa udaljenim Linux sistemima preko ljuske i omogućava vam da bezbedno prenosite datoteke na i sa udaljenih sistema.

Ali najveći nedostatak OpenSSH je taj što ne možete izvršiti istu komandu na više hostova odjednom i OpenSSH nije razvijen za obavljanje takvih zadataka.

Ovdje je zgodna alatka Parallelni SSH ili PSSH, aplikacija je bazirana na Pythonu, koja vam omogućava da izvršavate komande na više hostova paralelno u isto vrijeme.

Alat PSSH uključuje paralelne verzije OpenSSH i srodne alate kao što su:

  • pssh – je program za paralelno pokretanje ssh-a na više udaljenih hostova.
  • pscp – je program za paralelno kopiranje datoteka na više hostova.
  • prsync – je program za efikasno kopiranje datoteka na više hostova paralelno.
  • pnuke – ubija procese na više udaljenih hostova paralelno.
  • pslurp – paralelno kopira datoteke sa više udaljenih hostova na centralni host.

Ovi alati su dobri za administratore sistema koji rade sa velikim zbirkama čvorova na mreži.

Instalirajte PSSH ili paralelni SSH na Linux

U ovom vodiču ćemo pogledati korake za instaliranje najnovije verzije programa PSSH (tj. verzija 2.3.1) na RHEL distribucijama kao što su Fedora, CentOS Stream , Rocky & AlmaLinux i distribucije bazirane na Debianu kao što su Ubuntu i Linux Mint koristeći naredbu pip.

Komanda pip je mali program (zamjena za easy_install skriptu) za instaliranje i upravljanje indeksom Python softverskih paketa.

O distribucijama zasnovanim na RHEL-u

Na RHEL distribucijama, prvo morate instalirati pip paket (tj. python-pip) na vaš sistem da instalirate PSSH programirajte koristeći yum ili dnf.

yum install python-pip
OR
dnf install python-pip

Nakon što instalirate pip alat, možete instalirati paket pssh pomoću naredbe pip, kao što je prikazano u nastavku.

pip install pssh  

O distribucijama zasnovanim na Debianu

U distribucijama baziranim na Debianu, potrebna je minuta za instaliranje pssh pomoću naredbe pip.

sudo apt install python-pip
sudo pip install pssh

Kako da koristim pssh u Linuxu?

Kada koristite pssh potrebno je da kreirate host fajl sa brojem hostova zajedno sa IP adresom i brojem porta koje trebate da povežete sa udaljenim sistemima koristeći pssh.

Redovi u datoteci hosta su u sljedećem obliku i mogu uključivati prazne redove i komentare.

192.168.0.10:22
192.168.0.11:22

Pokrenite jednu naredbu na više Linux servera

Možete izvršiti bilo koju pojedinačnu naredbu na različitim ili više Linux hostova na mreži pokretanjem naredbe pssh. Postoji mnogo opcija za korištenje sa pssh kao što je opisano u nastavku:

Pogledat ćemo nekoliko načina izvršavanja naredbi na brojnim hostovima koristeći pssh sa različitim opcijama.

  • Za čitanje host fajla, uključite opciju -h host_file-name ili --hosts host_file_name.
  • Da biste uključili zadano korisničko ime na sve hostove koji ne definiraju određenog korisnika, koristite opciju -l korisničko ime ili --user username.
  • Također možete prikazati standardni izlaz i standardnu grešku kako svaki host završi. Koristeći opciju -i ili --inline.
  • Možda ćete poželjeti da uspostavite vremensko ograničenje veze nakon zadanog broja sekundi uključivanjem opcije -t number_of_seconds.
  • Za spremanje standardnog izlaza u dati direktorij, možete koristiti opciju -o /directory/path.
  • Da biste zatražili lozinku i poslali je na SSH, koristite opciju -A.

Pogledajmo nekoliko primjera i upotrebe pssh naredbi:

Pokrenite komande na više Linux hostova

1. Da izvršite echo “Hello TecMint ” na terminalu više Linux hostova od strane root korisnika i zatražite lozinku root korisnika, pokrenite ovu naredbu ispod.

Važno: Zapamtite da svi hostovi moraju biti uključeni u host fajl.

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

Napomena: U gornjoj naredbi “pssh-hosts” je datoteka sa listom IP adresa udaljenog Linux servera i broja SSH porta koje želite da izvršite naredbe.

Pronađite korištenje diska za više Linux hostova

2. Da biste saznali zauzetost prostora na disku na više Linux servera na vašoj mreži, možete pokrenuti jednu naredbu na sljedeći način.

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

Pronađite vrijeme rada višestrukih Linux hostova

3. Ako želite znati vreme rada više Linux servera odjednom, onda možete pokrenuti sljedeću naredbu.

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

Možete pogledati stranicu za ručni unos za naredbu pssh da dobijete mnoge druge opcije da saznate više načina korištenja pssh.

pssh --help

Sažetak

Paralelni SSH ili PSSH je dobar alat koji se koristi za izvršavanje naredbi u okruženju u kojem Sistemski administrator mora raditi sa mnogim serverima na mreži . To će olakšati daljinsko izvršavanje komandi na različitim hostovima u mreži.

Nadamo se da će vam ovaj vodič biti koristan i u slučaju bilo kakvih dodatnih informacija o pssh-u ili grešaka pri instalaciji ili korištenju, slobodno ostavite komentar.