Pssh
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
- Pnuke ja muud featuurid: PSSH howto
- Praktilise kasutuse näiteid: linux.com