Frage Wie kann ich einen Neustart in Linux planen?


Ich bin neu in Linux und möchte einen Neustart um Mitternacht planen. Wie soll ich das machen?

Bearbeitungen:

  • Es tut mir leid, dass ich nicht die vollständigen Details angegeben habe. Ich möchte jeden dritten Samstag im Monat um 23:30 Uhr einen Neustart durchführen.

  • Ich weiß nicht, was los ist, aber ich kann Crontab nicht finden. Was ich habe ist cron.d; cron.daily; cron.weekly; cron.monthly;

Es tut mir leid für die Noob-Frage. Bitte hilf mir. Vielen Dank.


35
2018-06-27 12:21


Ursprung


Die wirkliche Frage ist, warum Sie das regelmäßig machen wollen, haben Sie eine undichte Anwendung oder etwas? Wenn Sie regelmäßige Neustarts planen, um ein Problem zu lösen, haben Sie wahrscheinlich ein größeres Problem ... - JamesHannah
Möchtest du, dass es jede Nacht neu startet? - Matt Simmons
Ich stimme nicht ab, weil es eine Art Grundsatzentscheidung ist (und ich denke, dass nächtliche Neustarts ein wenig übertrieben sind), aber regelmäßige Neustarts über eine Infrastruktur hinweg sind eine gute Möglichkeit, um sicherzustellen, dass die Maschinen aktuelle Kernel und alle laufenden Dienste haben sind gepatcht. Ich habe ein 3-Monats-Limit als guten Mittelweg gehört. - Matt Simmons
Wenn dies ein Kommentar zu der Frage und nicht eine Antwort wäre, würde ich sie verbessern. Eigentlich würde ich meine Meinung ändern, weil die Frage nicht eindeutig war, ob dies eine einmalige oder regelmäßige Sache war. :) - intuited
/etc/crontabEintrag wie 30 23 15-21 * 6 /sbin/shutdown -r now wird am 3. Samstag eines jeden Monats um 23:30 Uhr neu gestartet. - Chris S


Antworten:


Art shutdown -r 0:00 und es wird um Mitternacht neu gestartet.

Wenn Sie jede Nacht neu starten möchten, fügen Sie einen Cron-Eintrag hinzu, indem Sie crontab -e als root verwenden, um shutdown -r jeden Mitternacht auszuführen

@midnight shutdown -r now

40
2018-06-27 12:25



Ein Zeitargument ist obligatorisch, das du verwenden kannst now. - Tobu
Nein ... wenn er einen einmaligen Befehl haben möchte und jetzt den Befehl eingeben möchte, sollte er die Zeit addieren! - radius
@No, es braucht ein Zeitargument wie now in der Crontab-Linie. - Dennis Williamson
Oups ja sorry, ich habe Tobu Kommentar falsch gelesen und denke, er sagt 0:00 war nutzlos im ersten Befehl ... Ich bearbeitet, um zu korrigieren (und Massimo antwortet auch) - radius
Ich wäre daran interessiert zu wissen, was anderes @{command} Variablen sind verfügbar. - Greg


Verwenden crontab.

http://en.wikipedia.org/wiki/Crontab

Wenn Sie diesen Eintrag zu / etc / crontab hinzufügen, sollten Sie Folgendes tun:

0 0 * * * /sbin/shutdown -r now

14
2018-06-27 12:26



shutdown braucht ein Zeitargument wie now - Dennis Williamson
Dadurch wird jede Nacht der Neustart durchgeführt. Ich bin mir nicht sicher, ob er das will. - cstamas
Die ursprüngliche Frage klang so, als ob er es jeden Abend neu starten wollte. Er möchte eigentlich jeden dritten Samstag neu gestartet werden, was mit einer Crontab immer noch am einfachsten wäre - Chris S
Ich weiß nicht, was falsch ist, aber ich kann die Crontab nicht finden ..? Was ich habe, ist das cron.d; cron.daily; cron.weekly; cron.monthly; Es tut mir leid für die noob Frage.Pls mir helfen. Vielen Dank - klauriens
Das hängt von der Distribution ab, die Sie verwenden, aber normalerweise sollten Sie eine Datei namens "crontab" im Verzeichnis / etc Ihres Systems finden. Sie sollten auch in der Lage sein, die aktuelle Crontab mit dem Befehl "crontab -l" zu untersuchen und mit "crontab -e" zu bearbeiten. - Massimo


Eine andere Möglichkeit ist die beim Befehl, verfügbar auf vielen Linux-Distributionen. Weitere Informationen finden Sie auf der Manpage. Die allgemeine Syntax für Ihren Zweck lautet jedoch:

echo "reboot" | um 0000 jun 27

Um die OS X Manpage zu zitieren:

beim - führt Befehle zu einer bestimmten Zeit aus

Klingt wie, wovon wir reden. ;)


10
2018-06-27 15:07





Soweit ich weiß, können Sie mit cron keine Aufgaben für "letzten Freitag jedes Monats" oder "dritten Donnerstag in jedem Monat" planen. Was Sie tun können, so hässlich es auch scheint, ist, dass jeden Samstag um 23:30 Uhr ein Skript läuft und dann dieses Skript bestimmt, ob dieser bestimmte Samstag der dritte Samstag der Woche ist (kann mit Datum und vielleicht cal Befehlen gemacht werden) .

Ich hoffe das hilft. Ich habe keine elegante Lösung für dieses Problem gefunden. Ich habe diesen Thread gefunden, weil ich nach einer Lösung für das gleiche Problem gesucht habe.


1
2018-03-06 13:09



Die obigen Kommentare von "30 23 15-21 * 6 / sbin / shutdown -r now" funktionieren. Es wird im Grunde nur in der dritten Woche des Monats laufen, aber nur wenn es auch Samstag ist - Sirex
Ich denke nicht, dass diese Cron-Linie so funktioniert, wie Sie denken. - ervingsb
Ich habe die folgenden zwei Zeilen erstellt: "30 23 1-7 * 4 date" und "30 23 1-7 * 3 date". ich habe zwei Mails gestern Abend beide sagen: "Wed Mar 7 23:30:02 CET 2012" - ervingsb
Das letzte Feld entspricht dem Wochentag, wobei Null Sonntag ist. der 4 cronjob sollte an einem Mittwoch nicht zusammenpassen. - Sirex
Das habe ich gemeint. Die Regel, die du geschrieben hast, bedeutet nicht, was du denkst, was es bedeutet. Es wird den Job jeden Tag für eine Woche auslösen. Egal an welchem ​​Wochentag. - ervingsb


Für einige schicke Cron-Magie, versuche es dieser Link. Es zeigt, wie Sie mit anderen Befehlen das gewünschte Datum erhalten.


0
2018-04-10 21:25





1) am Kommandozeilen-Typ which reboot
2) sobald Sie wissen, wo reboot befindet (normalerweise / sbin / reboot) cd in eines der Verzeichnisse in /etc/cron.daily, /etc/cron.weekly, /etc/cron.hourly etc ... dh cd /etc/cron.weekly

3) Erstellen Sie eine Datei (mit nano oder vim) rufen Sie es zreboot und fügen Sie die folgenden Zeilen hinzu:

#! / bin / sh
/ sbin / Neustart

Der Grund, warum Sie die Datei zzwhatever aufrufen möchten, ist sicherzustellen, dass es der letzte Job ist, der nach allen anderen Jobs aufgerufen wird. Um sicherzustellen, tun Sie einfach ein ls -l im Verzeichnis und vergewissern Sie sich, dass es sich um die letzte Datei handelt.


0
2017-09-01 14:15