Legen Sie die Host - Namen oder die IP - Adressen in einer Datei mit dem Namen inventory.txt
wie 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 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.
Legen Sie die Host - Namen oder die IP - Adressen in einer Datei mit dem Namen inventory.txt
wie 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 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