Můžete to udělat přímo z shutdown command
, viz man shutdown
:
SYNOPSIS
/sbin/shutdown [-akrhPHfFnc] [-t sec] time [warning message]
[...]
time When to shutdown.
Takže například:
shutdown -h 21:45
Tím se spustí shutdown -h
ve 21:45.
Pro příkazy, které tuto funkci nenabízejí, můžete zkusit jeden z:
A. Pomocí na
at
daemon je určen přesně pro toto. V závislosti na vašem operačním systému jej možná budete muset nainstalovat. Na systémech založených na Debianu to lze provést pomocí:
sudo apt-get install at
Existují tři způsoby, jak zadat příkaz at
:
-
Pipe it:
$ 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
-
Uložte příkaz, který chcete spustit, do textového souboru a předejte tento soubor do
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
-
Můžete také předat
at
příkazy ze STDIN:$ at now + 1 min warning: commands will be executed using /bin/sh at> ls
Poté stiskněte Ctrl D pro ukončení
at
skořápka.ls
příkaz bude spuštěn za jednu minutu.
Můžete zadat velmi přesné časy ve formátu [[CC]YY]MMDDhhmm[.ss]
, jako v
$ at -t 201403142134.12 < script.sh
Tím se spustí skript script.sh
ve 21:34 a 12 sekund dne 14. března 2014.
B. Pomocí cronu (ačkoli to není dobrý nápad pro vypnutí)
Druhým přístupem je použití cron
plánovač, který je navržen tak, aby vykonával úkoly v určitých časech. Obvykle se používá pro úkoly, které se budou opakovat, ale můžete zadat i konkrétní čas. Každý uživatel má své vlastní „crontabs“, které řídí, jaké úlohy se provádějí a kdy. Obecný formát crontab je:
* * * * * 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)
Například toto spustí ls
každý den ve 14:04:
04 14 * * * ls
Chcete-li nastavit cronjob pro konkrétní datum:
-
Vytvořte nový crontab spuštěním
crontab -e
. Otevře se okno vašeho oblíbeného textového editoru. -
Přidejte tento řádek do souboru, který se právě otevřel. Tento konkrétní příklad se spustí ve 14:34 15. března 2014, pokud je tento den pátek (takže, OK, může se spustit více než jednou):
34 14 15 5 /path/to/command
-
Uložte soubor a ukončete editor.
Tato odpověď SO navrhuje způsob, jak jej spustit pouze jednou, ale nikdy jsem ho nepoužil, takže za něj nemohu ručit.
Ne, nemůžete zadat datum při příkazu k vypnutí, ale existují dvě alternativy:
1) Nejjednodušší je použít příkaz at. Následující příklad spustí shutdown +5
v konkrétní čas a den:
echo "shutdown +5" | at 10:05am 2019-01-19
2) pokud vám nevadí používat kalkulačku a chcete se vypnout řekněme za 24 hodin (24*60=1440 minut) a jste si naprosto jisti, že se systém mezitím nerestartuje:
shutdown -r +1440
Váš systém se vypne ve 12:00 :
$ sudo shutdown -h 12:00
Možnosti:
-h, -P, --poweroff
Vypněte stroj.
-r, --reboot
Restartujte počítač.
-c
Zrušte čekající vypnutí.