Es gibt ja das Programm parallel-ssh auf googlecode und auch in diversen Repositories, z.B. für Ubuntu. Ich habe allerdings dieses simple Perl Skript geschrieben um ein ähnliches Ergebnis zu erzielen. Da ich das über Webmin für ein bestimmtes Subnetz benutzen möchte, habe ich es konfigurierbar gehalten und das letzte Octect einer IP angegeben. Dabei ist mein Ziel hier gewesen, mich mit dem PublicKey-Verfahren anzumelden und eine bestimmte Datei oder einen Befehl auszuführen.
#!/bin/perl $begin = shift @ARGV; $end = shift @ARGV; # if only one parameter given, only that IP will be used in the for-loop if ($end == "") { $end = $begin; } # check if valid IPv4 address if ($begin > $end || $begin > 255 || $end > 255 || $begin < 0 || $end < 0) { die "Die erste Zahl muss groesser als die zweite Zahl sein und muss eine Zahl zwischen 0 und 255 sein.\n "; } for (my $i = $begin; $i <= $end; $i++) { $bastelstring = "ssh user\@1.2.3." . $i . " befehl"; $return = `$bastelstring`; print $return . "\n"; }
Alternativ kann man auch z.B. fest konfiguriert ein Array definieren:
@IPs = ("192.168.1.2", "192.168.1.3", "192.168.1.4"); foreach $IP(@IPs) { $bastelstring = "ssh user\@" . $IP . " befehl"; $return = `$bastelstring`; print $return . "\n"; }