Ich weiß, dass Sie eine Abschaltung für eine bestimmte Zeit über planen können shutdown -h 21:45
und dass Sie Crontabs wegen ihrer Wiederholung nicht für solche Dinge verwenden sollten. Wie kann ich eine Abschaltung für ein bestimmtes Datum wie den 31. August um 20:00 Uhr planen ?
11
shutdown
. Wie ich in einer anderen Antwort schrieb, könnten Sie, die dies wollen, versuchen, die System-Leute davon zu überzeugen, ihrshutdown
Werkzeug leistungsfähiger zu machen , mit einer Syntax von Jahrzehnten, anstatt mit den Häusern herumzugehensystemd-run
.Der
at
Befehl dient zum Planen einer einmaligen zukünftigen Ausführung.z.B
(Das "<EOT>" wurde durch Drücken von Strg-D erzeugt.)
Hier können Sie Ihren
shutdown
Befehl eingeben.quelle
at
als ich gepostet habe -at
ist definitiv dafür im Allgemeinen gedacht, obwohl in einem Unternehmen die akzeptierte Methode sein kannat
odercron
, abhängig von den Konventionen in Bezug auf Konfigurationsmanagement / -bereitstellung.at
kann auch Befehle von einer Pipe übernehmen :echo "echo yup > $(tty)" | at now
.Während
at
die offensichtliche Art und Weise, dies zu tun, ich denke , es Abschaltungen überleben wird, so dass , wenn die Maschine neu startet vor der geplanten Abschaltung, könnte er erneut zum geplanten Zeitpunkt. Daher können wir mit Bash und GNU-Datum ein verzögertes Herunterfahren verwenden./sbin/shutdown +$(( ( $( date -d "30 may 2019 13:15" +%s ) - $( date +%s ) ) / 60 + 1 ))
NB: Dies ist nur auf eine Minute genau. Es konvertiert die geplante Zeit und jetzt in Sekunden seit der UNIX-Epoche, berechnet die Differenz, konvertiert in Minuten und verwendet diese dann als Verzögerung für das Herunterfahren. Es funktioniert nicht richtig, wenn die geplante Zeit in der Vergangenheit liegt.
quelle
Sie verwenden einen besseren
shutdown
Befehl.Die
shutdown
Befehle van Smoorenburg, Upstart und systemd erlauben keine Datumsangabe. Der BSD-shutdown
Befehl verwendet jedoch einen Datumswert in seiner Angabe, wann er heruntergefahren werden soll, in der Formyymmddhhmm
. Dies ist seit 4BSD der Fall und bleibt dies auch bei FreeBSD und OpenBSD. NetBSD erweiterte es aufccyymmddhhmm
.Da das Nosh-Toolset auch auf den BSDs verwendet werden kann, habe ich meinem
shutdown
Befehl die gleiche Funktion gegeben und ihn aufCCYYMMDDHHMM
pro NetBSD erweitert. Und da das nosh-Toolset auch unter Linux verwendet werden kann, gibt Linux einen Befehl zum Herunterfahren, der Datumsangaben enthält.Es funktioniert natürlich mit dem Nosh
system-manager
. Es funktioniert auch mit einigen anderen Systemen. Es sendet Signale an Prozess Nr. 1, um Dinge auszuführen, und die gleichen Signale werden von einigen anderen Systemmanagern verstanden, z. B.systemd
die auch damit heruntergefahren werden können.Sie könnten es oder ein ähnliches Werkzeug verwenden. oder Sie könnten versuchen, die Autoren anderer Linux-
shutdown
Programme davon zu überzeugen , ihre Tools so zu erweitern, dass sie auch so leistungsfähig sind wie das BSDshutdown
.Weiterführende Literatur
shutdown
. Nosh Toolset Handbuchseiten. Software.system-manager
. Nosh Toolset Handbuchseiten. Software.shutdown
. System Manager-Handbuch . NetBSD-Handbuchseiten. 2011-11-04.shutdown
. FreeBSD System Manager-Handbuch . 2018-01-01.shutdown
. OpenBSD-Handbuchseiten. 2015-01-21.quelle
So führen Sie den Job nur in diesem Jahr aus:
So führen Sie den Job jedes Jahr aus:
quelle
Möglicherweise gibt es eine Option zur Eingabe des Jahres in den
shutdown
Befehl, aber cron kann verwendet werden, um Befehle zu einem bestimmten Zeitpunkt nur einmal auszuführen. Versuchen Sie es in Ihrem BeispielAchtung: Das oben Genannte ist keine Standard-Cron-Syntax.
quelle
year
Feld imcrontab
Zeitplan