Planen eines Neustarts auf einem remote installierten Ubuntu-Server

17

Ich arbeite auf einem Ubuntu-Server an einem Ort, an den ich normalerweise nicht gehe. Ich benutze ssh über openvpn, um darauf zuzugreifen. Der Computer verfügt über mehrere kabelgebundene Schnittstellen, viele statische Routen und mehrere Standardgateways zum WAN. Ich ändere häufig die Schnittstellenadressen und -routen. In den meisten Fällen sind die von mir vorgenommenen Änderungen vorübergehend. Durch einen Neustart werden die durchgeführten Experimente zurückgesetzt. In einigen Fällen sind einige dieser Änderungen fehlgeschlagen, und der Computer wurde offline geschaltet. In solchen Fällen musste ich jemanden an der Stelle anrufen, an der sich der Server befindet, um den Computer neu zu starten.

Jetzt möchte ich einen Neustart einplanen - sagen wir nach 2 Stunden sollte die Maschine in einen Neustart-Zyklus gehen. Und in diesen zwei Stunden kann ich alle temporären Experimente durchführen, die ich möchte. Wenn alle temporären Änderungen erfolgreich sind, sollte es mir möglich sein, den Neustart nach 2 Stunden zu verhindern. Also was ich will ist:

  1. Wie kann ich den Server anweisen, nach einer bestimmten Zeit einen Neustart durchzuführen?
  2. Wenn ich beschließe, dass der Computer nicht neu gestartet werden soll, kann ich ihn abbrechen.
nixnotwin
quelle

Antworten:

14

shutdown -r 10 Waiting 10 minutes before the restart&Senden Sie auf dem Terminaltyp , bei dem der Server in 10 Minuten neu gestartet wird, eine Nachricht, die dies erklärt, und drücken Sie Strg + c, um die Neustartanforderung zu unterbrechen.

Auf dem Terminaltyp shutdown -r 18:00 Rebooting at 18:00 hours&, bei dem der Server um 18:00 Uhr neu gestartet wird, wird eine Nachricht gesendet, die dies erklärt und mit control + c unterbrochen werden kann.

Sie können auch alle Anforderungen zum Herunterfahren / Neustarten Ihres "funktionierenden" Terminals mit unterbrechen shutdown -a.

Bruno Pereira
quelle
2
Dies ist etwas problematisch, da es interaktiv ist und die von Ihnen ausgeführte Shell blockiert. Ich bin nicht sicher, ob dies vorhersehbar über SSH funktionieren würde, wenn die Sitzung abfällt.
Alain O'Dea
Ich konnte keine Kombination von nohupund sudodas würde diese Arbeit machen, wenn von einer normalen SSH-Sitzung als normaler Admin-Gruppenbenutzer ausgeführt.
HDave
Könnte dies in Kombination mit Screen ausgeführt werden, damit der Befehl angewendet und die SSH-Sitzung abgebrochen werden kann?
Andy Davies
30

Sie können auch verwenden, atum Neustarts zu planen. Zum Beispiel sudo at 22:00, um den Befehl um 22:00 Uhr als root auszuführen. Geben Sie dann den Befehl ein, den Sie ausführen möchten: /sbin/shutdown -r nowund beenden Sie mit ctrl-d. Wenn Sie diesen Befehl nicht ausführen möchten, führen Sie den Befehl aus, sudo atrm 1um den ersten Befehl in der atWarteschlange zu löschen . Mit sudo atqkönnen Sie die Warteschlange sehen.

kimda
quelle
Diese Lösung ist perfekt!
Sukima
5
Dies sollte als die richtige Antwort markiert werden! Die atBefehlsfamilie sollte jeder Serveradministrator kennen.
HDave
2
Wenn Sie neu sind at, führen Sie zuerst aus sudo at 22:00. Dies bringt Sie in eine Art Shell. Dann geben Sie den Befehl ein und ctrl-dbeenden ihn. Siehe auch mixeduperic.com/ubuntu/…
Tim Richardson