Pssh

From ICO wiki
Jump to navigationJump to search

autor: Nadežda Furs A31

Mis ja mille jaoks on Pssh

Iga süsteemiadministraator (või edasijõudnud kasutaja) võib puutuda kokku juhtumiga, kui on vaja tegeleda mitu sarnase süsteemiga ja sisestada masinatesse ühesuguseid käske (kasvõi klastrid). Aja säästmise mõttes oli tekkinud selline utiliit nagu Pssh ehk Parallel ssh. Põhimõtteliselt see võimaldab sisestada käske ühte terminali, aga nende edastamine toimub mitmesse ettedefineeritud masinasse. Selle programmi suurim eeldus on see, et kasutaja ei pea kirjutama skripte (loope) ning kõik käsud saadetakse paralleelselt, mitte järjekorras (muidugi, kui ülesanne ei ole suur ja hoste ei ole palju, siis erinevust meetodite vahel ei ole, suurte arvude puhul aga see väga säästab aega. Lisaks see utiliit aitaks näiteks üheaegsel faili muutmisel/kopeerimisel mitme masina peal - teha muudatusi vi tekstiredaktoris on mugavam kui kirjutada pika skripti.

Töö käik

Install

Võimalus 1. Pssh on saadaval online populaarsemates distrodes - Ubuntu, Suse, Fedora. Näiteks Ubuntu's:

sudo apt-get install pssh

Võimalus 2. Muidugi Pssh'd saab installida ka offline, kui laadida lähtekoodi projekti veebist. Pssh project @ Google code Installida saab nii (kui ei ole setuptools'e sisesta järgmised 2 käsu):

wget 'http://peak.telecommunity.com/dist/ez_setup.py'
sudo python ez_setup.py

Lõpuks navigeeri pssh-2.x.x kausta ja sisesta käsk:

sudo python setup.py install

Komponendid

Võib märgata, et pärast installi on Psshjuba määranud endale otseteed, nii et sisestades konsooli

pssh

Võib näha programmi otput'i. Süntaks on järgmine:

 pssh command -h hosts-file options

-h --hosts   hosts file (each line “host[:port] [user]“)
-l --user    username (OPTIONAL)
-p --par     max number of parallel threads (OPTIONAL)
-o --outdir  output directory for stdout files (OPTIONAL)
-t --timeout timeout in seconds to do ssh to a host (OPTIONAL)
-v --verbose turn on warning and diagnostic messages (OPTIONAL)
-O --options SSH options (OPTIONAL)

hosts-file on loetelu hostidest (näiteks hosts.txt fail)

Lisaks

Peale Pssh'd on kaasas utiliit pscp (nagu nimetusest on aru saada, paralleelne scp) prsync - parallel rsync - failide kopeerija pnuke - parallel nuke - protsesside manageerimine (killimine) pslurp - parallel slurp - failide "koguja" hostidest peamasinasse

Näide: failide kopeerimine paralleelselt mitmesse masinasse:

sudo  pscp -h hosts.txt -l nadja kaust1 kaust2

Kasutamise näide

Üritasin testida kolme lokaalvõrgus arvutiga, kõigil Ubuntu peal. 1. Kõgepealt on vaja luua hostide loeteluga fail, näiteks hosts.txt:

192.168.10.105
192.168.10.106

2. Proovime ühenduda kasutades loginit nadja ja kui login on edukas, kirjutame /tmp/lab faili hostinime: Katse1:

 pssh -h hosts.txt -l nadja -o /tmp/lab hostname
[1] 14:19:45 [FAILURE] 192.168.10.106 Exited with error code 255
[2] 14:19:46 [FAILURE] 192.168.10.105 Exited with error code 255

Viga! Sshd serverid ei ole hetkel sees! :) Alati veendu, et vajalikud featuurid serveril töötavad! Katse2:

 pssh -h hosts.txt -l nadja -o /tmp/lab hostname
   Success on 192.168.10.105:22
   Success on 192.168.10.106:22
  

vaatame, kas nimesid salvestati:

 
 ls /tmp/lab
192.168.10.105 192.168.10.106

 cat /tmp/lab
evil-pc
evil-laptop

Alternatiivid

shmux Tugev shmuxi pluss on see, et kui tahad teada näiteks uptime'i, on programmi output arusaadavam kui pssh (kuid käsk on raskema süntaksisega) shmux:

192.168.10.105: 2:28PM up 2 days, 22:37, 1 user, load averages: 1.90, 1.90, 1.88
192.168.10.106: 2:28PM up 2 days, 22:35, 1 user, load averages: 12.26, 12.76, 12.68

pssh:

ssh -P uptime
192.168.10.105: 2:27PM up 2 days, 22:35, 1 user, load averages: 2.29, 1.95, 1.89
192.168.10.105: 192.168.10.105: [1] 14:27:19 [SUCCESS] 192.168.10.105 22
192.168.10.106: 2:27PM up 2 days, 22:34, 1 user, load averages: 13.05, 12.96, 12.74
192.168.10.106: 192.168.10.106: [4] 14:27:19 [SUCCESS] 192.168.10.106 22

Kasulikud lingid