#!/bin/sh
for i in kone1 kone2 kone3
do
ssh ${i} komento
done
Yllä oleva siis ottaa yksi kerrallaan yhteyden kolmeen eri koneeseen ja ajaa niissä saman komennon.
Jääkö tuo odottamaan kunnes kone1 on suorittanut komennon ennenkuin ottaa yhteyttä koneeseen kone2? Jos jää, niin ei sovi mun tarkoitukseen
Ja jotta yllä oleva toimii järkevästi niin kannattaa käyttää DSA-avaimia (ilman salasanasuojausta) autentikointiin jotta ei tarvitse antaa salasanaa joka koneelle. Eli siis jotain tämän tyylistä siinä koneessa tehtynä jossa tuo skripti ajetaan:
# ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/home/xxx/.ssh/id_dsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/xxx/.ssh/id_dsa.
Your public key has been saved in /home/xxx/.ssh/id_dsa.pub.
The key fingerprint is:
f4:68:75:47:4d:7a:64:9d:c8:62:ae:35:41:34:31:5e xxx@kone
# scp .ssh/id_dsa.pub kone1:.ssh/authorized_keys
# scp .ssh/id_dsa.pub kone2:.ssh/authorized_keys
# scp .ssh/id_dsa.pub kone3:.ssh/authorized_keys
Tätä en ymmärtänyt? Pitää kokeilla... Siis tuon tekeminen _vain_ sillä koneella, josta yhteydet otetaan, riittäisi?
Eräässä aiemmassa ketjussa T.M kirjoitti:
Lisäksi on olemassa "ohjelma" jolla voi suorittaa terminaalikomennot ssh:n yli monella sadalla koneella yhdellä kertaa. Tätä voi käyttää hätätapauksissa esim. vihoittelevien pakettien poistossa tai erikoisempien päivitysten teossa. (En nyt löytänyt freshmeat:stä tätä programmia, joku viisaampi varmaan neuvoo).
Jos vain T.M tai kuka vaan muu tietää/löytää tämän "ohjelman" (scripti?) niin viestiä kehään kiitos!