Wenn wir eine Reihe von Linux-Computern in einem LAN haben, schreiben Sie ein Shellskript, um alle Computer herunterzufahren

737
user331621

Ich habe ein Labor, in dem eine Sammlung von Linux-Computern im LAN verbunden ist. Ich möchte, wie man ein Shell-Skript schreibt, um den gesamten PC herunterzufahren, wenn wir dieses Shell-Skript ausführen.

-1
Mögliches Duplikat von [Ist es möglich, entfernte Computer ohne Eingabe des Kennworts herunterzufahren?] (Http://superuser.com/questions/615570/is-it-possible-to-shutdown-remote-computer-ohne- Eingabe-des- Kennwort) oder [So fahren Sie einen Computer mit einer bestimmten IP-Adresse herunter?] (http://superuser.com/questions/57705/how-to-shut-down-a-computer-having-a-particular-ip- Adresse) Sie können auch die Frage [Herunterfahren ohne Sudo-Benutzerpasswort in Ubuntu] (http://superuser.com/questions/92925/shutdown-without-sudo-user-password-in-ubuntu) für Ihre Suche hilfreich finden. Breakthrough vor 10 Jahren 0

2 Antworten auf die Frage

1
Cristian Ciupitu

Legen Sie die Host - Namen oder die IP - Adressen in einer Datei mit dem Namen inventory.txtwie folgt aus :

computer1 computer2 192.168.1.1 

Verwenden Sie dieses Skript:

while read host; do ssh root@$ shutdown -h now done < inventory.txt 
Ich schauderte, als ich `root @ 'für viele mehr als nur einen Grund sah ... Breakthrough vor 10 Jahren 0
@Breakthrough, hast du es deshalb abgelehnt? Cristian Ciupitu vor 10 Jahren 0
Die Tatsache, dass OP möglicherweise keinen SSH-Dämon hat, sollte [der Benutzer "root" bereits über SSH deaktiviert werden] (http://superuser.com/questions/124763/have-a-bash-script-remotely-shutdown -andem -computer-on-the-lan), würden die "root" -Kennwörter, falls vorhanden, fest codiert (oder würden die Schlüssel alle zusammengehalten) und [Sie brauchen "root" nicht, um die Maschine zu schließen down] (http://superuser.com/questions/92925/shutdown-without-sudo-user-password-in-ubuntu). Breakthrough vor 10 Jahren 0
@Breakthrough, wenn das OP keine SSH eingerichtet hat oder diese Antwort nicht passt, kann er dies auch sagen. Ich sehe auch nicht, wie das Einloggen als Root ein Grund für das Down-Voting sein kann. Ich kann verstehen, dass dies ein Grund dafür ist, dass nicht gewählt wird, aber nicht. Cristian Ciupitu vor 10 Jahren 0
1
ben

Ich entschuldige mich, dass ich keinen Kommentar hinzufügen darf (nicht hoch genug?) Und muss diesen daher leider als Antwort posten

Ich bin auch neugierig, warum die Antwort auch abgelehnt wurde. @Cristian hat viele Vorzüge, und ich stimme zu, dass, wenn OP keinen SSH-Dämon hat, er entweder angeben würde, dass er einen Workaround braucht, oder er erkennt, dass er es vielleicht installiert hat. Wenn man bedenkt, dass die meisten Antworten für diese Art von Dingen SSH-Dämon verwenden würden, denke ich, dass dies eine gute Antwort ist.

Davon abgesehen stimme ich zu, dass Sie dazu root und die ssh-Schlüsselauthentifizierung verwenden sollten. Das ist die beste und sicherste Antwort. Natürlich verwenden Sie kein Kennwort in einem ssh-Skript. Dies ist schwieriger (muss wahrscheinlich erwartet werden) und weniger sicher.

Ich weiß nicht, wie man einen Benutzer ohne Rootberechtigung zum Ausschalten / Neustarten verwendet. Wenn Sie den von Ihnen gesendeten Link verwenden, stellen Sie fest, dass der sudo-Benutzer über kein Kennwort verfügt, und schalten Sie den Computer aus. Das bedeutet, dass jeder Benutzer, der den Benutzernamen kennt, diesen Benutzer und die Power-Off-Funktion nutzen kann. Wollen Sie das wirklich?

Entschuldigung, dass dies als separate Antwort gepostet wird - ich möchte es als Kommentar zu @ Cristians Antwort hinzufügen, da seine Antwort eine ist, für die ich stimmen würde