ForumShell Kommando gleichzeitig an andere System senden
HJBulst – Freitag, 20. Oktober 2006 11:09 Uhr

Hallo zusammen,

ich habe folgendes Problem:
Ich betreue mehrere LINUX System (SuSE) und muß oft per ssh auf den Systemen arbeiten und dort betimmte Aktionen durchführen. Da ich diese Aktionen auf allen Systemen durchführen muß, ist das ständige Anmelden per ssh und immer die gleichen Aktionen eintippen sehr lästig.

Frage:
Gibt es speziell für SuSE ein Tool, über das ich von meinem System aus, gleichzeitig Befehle an alle LINUX System senden kann ?
Wenn JA – wie nutzt und konfiguriert man es.

Für Anregeungen aus der Community bin ich sehr dankbar.

MfG
Hans-Juergen

2 Antworten
Georg Schieche-Dirik – Freitag, 20. Oktober 2006 14:22 Uhr

http://www.google.de
dort z.B.:
distributed shell linux suse

erster Treffer:
http://www.linux-magazin.de/Artikel/ausgabe/2004/06/075_dsh/dsh.html
sieht schon vielversprechend aus.

Viel Spaß

HJBulst – Freitag, 20. Oktober 2006 15:50 Uhr

Hallo Georg,

danke für den Hinwies und dem Link.
Das was ich da so lese, scheint genau das zu sein was ich suche.

Hast Du Erfahrungen mit diesem Tool sammeln können ?

Gruss
Hans-Juergen

Günter Frenz – Freitag, 20. Oktober 2006 19:56 Uhr

Als ich mal so etwas brauchte, habe ich mir erstens die ssh-Zugänge mit hinterlegtem Schlüssel für passwortloses Anmelden eingerichtet und zweitens die benötigten Befehle in ein simples Shellscript geschrieben und drittens ein weiters Script geschrieben, dass in einer for-Schleife das erste Script auf alle Rechner kopiert und dort auch ausführt. Klappt hervorragend und garantiert mit jeder Linux oder Unix Installation solange auf allen beteiligten Rechnern die gleiche Shell verwendet wird. Ich benutze das, um in der Schule die Rechner eines Klassenraums mit einer speziellen Umgebung für Klassenarbeiten vorzubereiten und nachher die Ergebnisse wieder einzusammeln.

Günter

HJBulst – Montag, 23. Oktober 2006 09:18 Uhr

Hallo Günter,

könntest Du mir diese Scripte per Mail zur Verfügung stellen ?

MfG
Hans-Juergen

Günter Frenz – Dienstag, 24. Oktober 2006 20:41 Uhr

Der Einfachheit halber stelle ich die paar Zeilen hier rein, dann haben auch noch andere was davon. Variablen und Rechnernamen sind natürlich geeignet anzupassen…

1. Verteilen eines Skriptes und anschließendes Ausführen auf dem entfernten Rechner:

#! /bin/bash
#
# Verteilen und Ausführen einer Datei nach /root
# Parameter: Dateiname
#
for NR in 1 2 3 4 5 6 7 8 9 10 11 12 ; do
echo ‘Kopieren auf Rechner c004-‘$NR
scp $1 c004-$NR:/root
echo ‘Ausführen auf Rechner c004-‘$NR
ssh c004-$NR /root/$1
done

2. Verteilen eines vorher mittels ssh-keygen erstellten Schlüssels:

#! /bin/bash
#
# Verteilen des ssh-Schlüssels
# (vorhandene Schlüssel werden überschrieben!)
#
for NR in 1 2 3 4 5 6 7 8 9 10 11 12 ; do
scp .ssh/identity.pub c004-$NR:/root/.ssh/authorized_keys
done
exit

3. Beispiel für ein Skript zur Einrichtung einer Klausurumgebung (einige Dateien wurden schon vorher auf die Rechner kopiert) als Anregung für eigene Skripte…

#! /bin/bash
#
# Anlegen der Klausurverzeichnisse
#
rm -f /home/*.tgz
rm -f /home/*.tar
rm -rf /var/klausur/gruppe-*
touch /var/klausur/Error.file
touch /var/klausur/.Error.file

for K in a b ; do
rm -rf /home/gr$K
mkdir /home/gr$K
cp -rd /etc/skel/. /home/gr$K
chown -R gr$K.gruppe$K /home/gr$K
chmod 700 /home/gr$K
mkdir /var/klausur/gruppe-$K
chmod 750 /var/klausur/gruppe-$K
cp /root/tast.tgz /var/klausur/gruppe-$K
cd /var/klausur/gruppe-$K
tar -xzf tast.tgz
chown -R gr$K.gruppe$K /var/klausur/gruppe-$K
chown root.gruppe$K /var/klausur/gruppe-$K
done

chmod 700 /home/*

exit

Ich denke, dass dies als Grundlage für eigene Entwicklungen reichen sollte. Ansonsten hilft wie immer das ausführliche Studium der Man-pages.

Günter

Rico Rommel – Freitag, 27. Oktober 2006 12:30 Uhr

Hallo Günter,

vielleicht kannst du mir weiterhelfen.
Dieser Thread kam mir sehr gelegen und ich habe es selbst auch mal ausprobiert
(allerdinsgs mit dsh). Jetzt wird von mir jedoch für jeden Rechner, der
angesprochen wird, das Passwort für meinen privaten Schlüssel gefordert. Das
kann nicht Sinn der Aktion sein, denn dann kann ich mich ja gleich mit ssh +
Passwort anmelden.
Den Schlüssel ohne Passwort zu erzeugen erscheint mir etwas leichtsinnig, da
jemand, der in Besitz des Schlüssels gelangt, sofort root-Zugriff auf alle
Rechner im Netzwerk hat.
Gibt es dafür eine Lösung?

mfg
Rico

Günter Frenz – Freitag, 27. Oktober 2006 20:58 Uhr

Bei mir war das mit dem fehlenden Passwortschutz für den Schlüssel nicht so kritisch, da böswillige Schüler genügend andere Möglichkeiten hätten, die Rechner zu manipulieren, da auf anderen Partitionen eben auch Systeme installiert sind, auf denen die Schüler root-Rechte haben…

Es gibt aber das Programm ssh-agent, dass nur eine einmalige Passworteingabe erfordert und dann den Schlüssel im Speicher vorhält.

hth

Günter

Rico Rommel – Samstag, 28. Oktober 2006 10:28 Uhr

Danke, mit dem ssh-agent klappt das wunderbar.

mfg
Rico