GNU/Linux >> Znalost Linux >  >> Linux

Jak vypnout Linux v konkrétní datum z terminálu?

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 :

  1. 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
    
  2. 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
    
  3. 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:

  1. Vytvořte nový crontab spuštěním crontab -e . Otevře se okno vašeho oblíbeného textového editoru.

  2. 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        
    
  3. 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í.


Linux
  1. Jak vyhledávat na webu z terminálu v systému Linux

  2. Jak vyloučit konkrétní adresáře z kopírování v Linuxu

  3. Jak nainstalovat balíčky z konkrétního úložiště v Linuxu

  1. Linux – Jak spustit bootloader z Linuxu?

  2. Jak vypnout nebo restartovat Linux

  3. Jak najdu konkrétní soubor z terminálu Linux?

  1. Jak vymazat konkrétní příkaz z historie Bash v Linuxu

  2. Jak používat SSMTP k odeslání e-mailu z terminálu Linux

  3. Vypněte počítač se systémem Windows z linuxového terminálu