2016-06-29 22 views
0

Mein Skript ist im Grunde eine bequeme Möglichkeit, Remote-Shutdown und Wakeonlan zu tun. Das Skript läuft von meinem Raspberry PiBenötigen Sie SSH und führen Sie einen einzelnen Befehl als Teil eines größeren Bash-Skript

Das Herunterfahren meines Desktops ist einfach, aber wenn ich meinen Home-Server herunterfahre, möchte ich zuerst meine virtuelle Maschine von Seambox ausschalten (die auf meinem Home-Server läuft), indem ich eine Verbindung herstelle über SSH und "shutdown -h now" ausgeben

  TIMESTAMP=`date "+%Y-%m-%d %H:%M:%S"` 
      echo "$TIMESTAMP: shutting down seedbox virtual machine" >> ${LOG_FILE} 
      sshpass -p " " ssh -o StrictHostKeyChecking=no [email protected] 
      sleep 5 
      sudo shutdown -h now 
      sleep 60 
      TIMESTAMP=`date "+%Y-%m-%d %H:%M:%S"` 
      echo "$TIMESTAMP: shutting down $TARGET" >> ${LOG_FILE} 
      net rpc shutdown -f -t 5 -C 'Shutting down in 5 seconds' -U lukesau%pass -I 192.168.1.99 

Die Seedbox ist eine virtuelle Mac OS X-Maschine, die in VMware ausgeführt wird. Vielleicht gibt es eine bessere Möglichkeit, eine VM herunterzufahren, bevor Sie das Host-Betriebssystem herunterfahren.

Antwort

0

So funktioniert das nicht, ssh liest die folgenden Befehle nicht aus Ihrer Eingabedatei. Sie können den Befehl geben nach rechts

sshpass -p " " ssh -o StrictHostKeyChecking=no [email protected] \ 
    'sh -c "sleep 5 ; sudo shutdown -h now ; sleep 60"' 

Dies wird unter der Annahme, dass Sie diese drei Befehle über die ssh und dem Rest „vor Ort“ wieder ausgeführt werden soll, nachdem ssh ausgeführt werden.

Ich übernehme keine Garantie für das Angebot, noch für Sie sshpass Konstruktion, da ich kein Handbuch dafür habe.