Wie konfiguriere ich Ubuntu so, dass es jeden Tag zu einer bestimmten Zeit neu gestartet wird?

11

Wie kann ich Ubuntu mithilfe des Terminals oder einer Bash-Datei so konfigurieren, dass es jeden Tag um beispielsweise 3 Uhr morgens neu gestartet wird?

Mit anderen Worten, ich möchte einen automatischen Neustart über das Terminal planen.

Ich konnte bei Google oder AskUbuntu nichts in diesem Zusammenhang finden und bin im Allgemeinen ziemlich neu in Ubuntu (habe gerade meinen neuen Raspberry Pi bekommen).

Mathias Lykkegaard Lorenzen
quelle

Antworten:

13

Bearbeiten Sie die crontab-Einträge mit dem crontab -eBefehl (standardmäßig werden die aktuell angemeldeten Benutzer crontab bearbeitet) und fügen Sie die folgende Zeile hinzu:

0 3 * * * echo $PASSWD | sudo -S reboot
#change $PASSWD with your password

Speichern Sie die Datei und überprüfen Sie den neuen Crontab-Eintrag mit crontab -l.

Wenn Sie nur verwenden möchten:

0 3 * * * sudo reboot

Als Crontab funktioniert dies nicht normal und Sie sollten diesen Beitrag überprüfen, um zu sehen, wie Sie es zum Laufen bringen können.

Oder fügen Sie einfach die crontab zur crontab-Datei des Root-Benutzers hinzu und geben Sie den vollständigen Pfad für den rebootBefehl an sudo crontab -e:

0 3 * * * /sbin/reboot
Radu Rădeanu
quelle
Könnten Sie dies nicht in Roots Crontab setzen und sich nicht zu viele Sorgen um denecho $PASSWD
Dan
Das wusste ich nicht. Ist das ein Fehler von Cron oder ist es normal? Ich meine, wenn Sie die crontab als root bearbeiten, wird der Job nur ausgeführt, wenn Sie als root angemeldet sind? Ich denke das ist falsch. (oder sollte sein).
NickTux
@ RaduRădeanu Das stimmt nicht. Root-Cronjobs werden ausgeführt, ohne als Root angemeldet zu sein.
OrangeTux
@OrangeTux Sie haben Recht, sorry, das habe ich gesagt, weil ich getestet habe, ohne den vollständigen Pfad für den rebootBefehl anzugeben . Sonst funktioniert nicht. Siehe meine neuen Änderungen.
Radu Rădeanu
@NikTh Ich habe mich geirrt, siehe obigen Kommentar .
Radu Rădeanu
1

Beachten Sie, dass das Einfügen Ihres Klartextkennworts in eine Textdatei keine gute Idee ist. Daher ist es am besten, diesen Job von Anfang an als Root auszuführen. Anstatt die crontab von root über den crontabBefehl zu bearbeiten , der die Einträge an /var/spool/cron/crontabseinem etwas kryptischen Ort belässt , ziehe ich es normalerweise vor, sie explizit einzugeben /etc/cron.d. Einträge in cron.d werden als System-Crontab-Einträge ausgeführt, als Konfigurationsdateien behandelt, damit sie Systemneustarts, Aktualisierungen und Upgrades überleben können, und Sie können den laufenden Benutzer explizit angeben:

echo "0 3 * * * root /sbin/shutdown -h 5 'System will reboot in 5 minutes'" | sudo tee /etc/cron.d/reboot-at-3-am

Wenn Sie keine bestimmte Zeit benötigen, sondern das System nur einmal täglich /etc/cron.dailyneu starten möchten, fügen Sie eine ausführbare Datei oder ein Skript hinzu, und es wird automatisch zu einer festgelegten Zeit (standardmäßig 6:25 Uhr Systemzeit) ausgeführt:

echo "/sbin/shutdown -h 5 'System will reboot in 5 minutes'" | sudo tee /etc/cron.daily/reboot-me

Beachten Sie, dass ich nicht nur das System ohne Vorwarnung neu starte, sondern eine 5-Minuten-Warnung einstelle. Wenn also jemand angemeldet ist, hat er die Möglichkeit, seine Arbeit zu speichern oder sogar das Herunterfahren mit zu unterbrechen sudo shutdown -c, anstatt das System ziehen zu lassen weg unter ihnen. Sie können diese entsprechend anpassen, wenn Sie eine ausführlichere Warnung geben möchten (verwenden Sie beispielsweise shutdown -h 60den Befehl und führen Sie ihn um 2:00 Uhr morgens aus, und Sie erhalten eine großzügige 1-Stunden-Warnung für Benutzer).

Dies basiert auf meinen bisherigen Erfahrungen; an einem gewissen Punkt , den Sie werden werden in der Arbeit , wenn die crontab Eintrag läuft angemeldet, und wenn es neu startet nur ohne Vorwarnung werden Sie ein sehr trauriger Panda sein.

Roadmr
quelle
-1

Warum wollen oder müssen Sie das tun? Es ist zwar ziemlich einfach, aber mit Linux gibt es mit ziemlicher Sicherheit eine bessere Lösung, bei der kein Neustart erforderlich ist. Im Gegensatz zu Windows erfordern Linux-basierte Betriebssysteme keinen Neustart für fast alles außer Kernel-Upgrades.

Wenn Sie erklären, was Sie erreichen möchten, können wir Ihnen wahrscheinlich besser helfen.

Jack Knight
quelle
3
Er möchte den Computer jede Nacht neu starten, damit er neu gestartet wird
Michael Butler