Sie können dies direkt vom shutdown command
aus tun , siehe man shutdown
:
SYNOPSIS
/sbin/shutdown [-akrhPHfFnc] [-t sec] time [warning message]
[...]
time When to shutdown.
Also zum Beispiel:
shutdown -h 21:45
Das wird shutdown -h
ausführen um 21:45.
Für Befehle, die diese Funktionalität nicht bieten, können Sie einen der folgenden ausprobieren:
A. Mit at
Die at
Daemon ist genau dafür ausgelegt. Abhängig von Ihrem Betriebssystem müssen Sie es möglicherweise installieren. Auf Debian-basierten Systemen kann dies erfolgen mit:
sudo apt-get install at
Es gibt drei Möglichkeiten, at
einen Befehl zu erteilen :
-
Weiterleiten:
$ echo "ls > a.txt" | at now + 1 min warning: commands will be executed using /bin/sh job 3 at Thu Apr 4 20:16:00 2013
-
Speichern Sie den auszuführenden Befehl in einer Textdatei und übergeben Sie diese Datei dann an
at
:$ echo "ls > a.txt" > cmd.txt $ at now + 1 min < cmd.txt warning: commands will be executed using /bin/sh job 3 at Thu Apr 4 20:16:00 2013
-
Sie können auch
at
übergeben Befehle von STDIN:$ at now + 1 min warning: commands will be executed using /bin/sh at> ls
Drücken Sie dann Strg D um
at
zu verlassen Hülse. Diels
Der Befehl wird in einer Minute ausgeführt.
Sie können sehr genaue Zeiten im Format [[CC]YY]MMDDhhmm[.ss]
angeben , wie in
$ at -t 201403142134.12 < script.sh
Dadurch wird das Skript script.sh
ausgeführt um 21:34 und 12 Sekunden am 14. März 2014.
B. Verwenden von cron (obwohl dies keine gute Idee zum Herunterfahren ist)
Der andere Ansatz verwendet den cron
Scheduler, der Aufgaben zu bestimmten Zeiten ausführen soll. Es wird normalerweise für Aufgaben verwendet, die wiederholt werden, aber Sie können auch eine bestimmte Zeit angeben. Jeder Benutzer hat seine eigenen "Crontabs", die steuern, welche Jobs wann ausgeführt werden. Das allgemeine Format einer Crontab ist:
* * * * * command to be executed
- - - - -
| | | | |
| | | | +----- day of week (0 - 6) (Sunday=0)
| | | +------- month (1 - 12)
| | +--------- day of month (1 - 31)
| +----------- hour (0 - 23)
+------------- min (0 - 59)
So wird beispielsweise ls
ausgeführt jeden Tag um 14:04:
04 14 * * * ls
So richten Sie einen Cronjob für ein bestimmtes Datum ein:
-
Erstellen Sie eine neue Crontab, indem Sie
crontab -e
ausführen . Dies öffnet ein Fenster Ihres bevorzugten Texteditors. -
Fügen Sie diese Zeile der gerade geöffneten Datei hinzu. Dieses spezielle Beispiel wird am 15. März 2014 um 14:34 Uhr ausgeführt, wenn dieser Tag ein Freitag ist (ok, es könnte also mehr als einmal ausgeführt werden):
34 14 15 5 /path/to/command
-
Speichern Sie die Datei und verlassen Sie den Editor.
Diese SO-Antwort schlägt eine Möglichkeit vor, es nur einmal auszuführen, aber ich habe es noch nie verwendet, daher kann ich nicht dafür bürgen.
Nein, Sie können beim Shutdown-Befehl kein Datum angeben, aber es gibt zwei Alternativen:
1) Am einfachsten ist es, den at-Befehl zu verwenden. Das folgende Beispiel führt shutdown +5
aus zu einer bestimmten Uhrzeit und an einem bestimmten Tag:
echo "shutdown +5" | at 10:05am 2019-01-19
2) wenn es Ihnen nichts ausmacht, Ihren Taschenrechner zu benutzen und in sagen wir 24 Stunden (24*60=1440 Minuten) herunterfahren möchten und Sie absolut sicher sind, dass das System dazwischen nicht neu startet:
shutdown -r +1440
Es wird Ihr System um 12:00 herunterfahren :
$ sudo shutdown -h 12:00
Optionen:
-h, -P, --poweroff
Schalten Sie das Gerät aus.
-r, --reboot
Starten Sie den Computer neu.
-c
Anstehendes Herunterfahren abbrechen.