GNU/Linux >> Znalost Linux >  >> Linux

Naplánujte si úlohu pomocí příkazu Linux at

Počítače jsou dobré v automatizaci, ale ne každý ví, jak automatizaci zajistit. Skutečný luxus je však mít možnost naplánovat úkol pro počítač na konkrétní čas a pak na něj zapomenout. Možná máte soubor, který chcete nahrát nebo stáhnout v určitou dobu, nebo potřebujete zpracovat dávku souborů, které ještě neexistují, ale je zaručeno, že budou existovat do určité doby nebo nastavení, které vyžaduje monitorování, nebo možná jen potřebujete přátelské připomenutí, abyste si cestou z práce vyzvedli chleba s máslem.

To je to, co at příkaz je pro.

Co je to Linux at command?

at command je metoda terminálu Linux, která vám umožňuje naplánovat jednorázové úlohy na konkrétní čas a datum. Jde o spontánní automatizaci snadnou z terminálu.

Instalace na

V systému Linux at příkaz je pravděpodobně již nainstalován. Zda je nainstalován, můžete ověřit pomocí at -V příkaz. Dokud je vrácena verze, máte at nainstalováno:

$ at -V
at version x.y.z

Pokud se pokusíte použít at a příkaz nebyl nalezen, většina moderních distribucí Linuxu nabízí instalaci chybějícího at balíček pro vás.

Možná budete také muset spustit démona at s názvem atd . Na většině systémů Linux používáte příkaz systemctl k povolení služeb a nastavení jejich automatického spouštění od nynějška:

$ sudo systemctl enable --now atd

Interaktivní plánování úlohy pomocí na

Když použijete at spolu s časem, kdy má být úloha spuštěna, otevřete interaktivní at výzva. Můžete zadat příkazy, které chcete spustit v určený čas.

Pokud to pomůže, můžete si tento proces představit jako kalendářovou aplikaci, jako je ta, kterou pravděpodobně používáte na svém mobilním telefonu – nejprve vytvoříte událost na den v určitou dobu a poté určíte, co se má stát.

Zkuste si například naplánovat poznámku pro sebe vytvořením úkolu na několik minut v budoucnu. Usnadněte si úkol, abyste snížili pravděpodobnost selhání. Chcete-li opustit at stiskněte Ctrl+D na klávesnici.

$ at 11:20 AM
warning: commands will be executed using /bin/sh
at> echo "hello world" > ~/at-test.txt
at> <EOT>
job 3 at Mon Jul 26 11:20:00 2021

Jak můžete vidět, at používá intuitivní a přirozené časové definice. Nepotřebujete znát 24hodinový formát nebo překládat časy do UTC nebo do určitého formátu ISO. Obecně můžete použít jakýkoli způsob zápisu, který je pro vás přirozený, například poledne13:3013:37 , a tak dále, abyste popsali, kdy chcete, aby se úkol uskutečnil.

Počkejte několik minut a poté ověřte, že vaše úloha proběhla spuštěním cat nebo tac příkaz k souboru, který jste vytvořili:

$ cat ~/at-test.txt
hello world

Plánování úlohy pomocí v

K plánování úloh s at nemusíte používat interaktivní výzvu . Místo toho do něj můžete přenášet příkazy pomocí echo nebo printf . V tomto příkladu používám zápis nyní a za kolik minut od této chvíle chci, aby byl úkol zpožděn:

$ echo "echo 'hello again' >> ~/at-test.txt" | at now +1 minute

Po minutě ověřte, že byl nový příkaz proveden:

$ cat ~/at-test.txt
hello world
hello again

Další zdroje pro Linux

  • Cheat pro příkazy Linuxu
  • Cheat sheet pro pokročilé příkazy systému Linux
  • Bezplatný online kurz:Technický přehled RHEL
  • Síťový cheat pro Linux
  • Cheat sheet SELinux
  • Cheat pro běžné příkazy pro Linux
  • Co jsou kontejnery systému Linux?
  • Naše nejnovější články o Linuxu

Časové výrazy

at příkaz je při interpretaci časů docela shovívavý. Můžete si vybrat mezi mnoha formáty, podle toho, který je pro vás nejpohodlnější:

  • YYMMDDhhmm [.ss]

    (zkráceně rok, měsíc, den, hodina, minuta a volitelně sekundy)
  • CCYYMMDDhhmm [.ss]

    (celý rok, měsíc, den, hodina, minuta a volitelně sekundy)
  • now
  • midnight
  • noon
  • teatime (16:00)
  • AM
  • PM

Časy a data mohou být absolutní nebo přidat znaménko plus (+ ), aby byly relativní k nyní . Při zadávání relativních časů můžete použít slova, která pravděpodobně již používáte:

  • minutes
  • hours
  • days
  • weeks
  • months
  • years

Syntaxe času a data

at Příkaz je méně shovívavý při odhalování časů od dat. Nejdříve musí být čas a za ním den, i když výchozím dnem je aktuální den a je vyžadován pouze při plánování úkolu na některý den v budoucnosti.

Toto jsou příklady několika platných výrazů:

$ echo "rsync -av /home/tux me@myserver:/home/tux/" | at 3:30 AM tomorrow
$ echo "/opt/batch.sh ~/Pictures" | at 3:30 AM 08/01/2022
$ echo "echo hello" | at now + 3 days

Zobrazení vaší fronty

Jakmile přijmete at a plánujete úkoly místo toho, abyste si čmárali poznámky na útržky papíru, které se vám povalovaly kolem vašeho stolu, možná budete chtít zkontrolovat, zda máte ještě nějaké úkoly ve frontě.

Chcete-li zobrazit svůj at fronty, použijte atq příkaz:

$ atq
10 Thu Jul 29 12:19:00 2021 a tux
9  Tue Jul 27 03:30:00 2021 a tux
7  Tue Jul 27 00:00:00 2021 a tux

Chcete-li odebrat úkol z fronty, použijte atrm příkaz spolu s číslem zakázky. Chcete-li odstranit úlohu 7, například:

$ atrm 7
$ atq
10 Thu Jul 29 12:19:00 2021 a tux
9  Tue Jul 27 03:30:00 2021 a tux

Chcete-li vidět, co je skutečně v naplánované úloze, musíte se podívat na at cívka. Pouze uživatel root může zobrazit at spool, takže musíte použít sudo pro zobrazení cívky nebo pro cat obsah jakékoli úlohy.

Plán s Linuxem na

at systém je skvělý způsob, jak se vyhnout tomu, abyste zapomněli spustit úlohu později během dne nebo aby váš počítač provedl úlohu za vás, když jste pryč. Na rozdíl od cron , je oproštěno od očekávání, že úloha musí od nynějška až do věčnosti běžet podle pravidelného plánu a její syntaxe je proto mnohem jednodušší než cron syntaxe.

Až budete mít příště malou úlohu, kterou si má váš počítač zapamatovat a spravovat, zkuste at příkaz.


Linux
  1. Plánování úloh pomocí linuxového příkazu cron

  2. Diagnostikujte problémy s připojením pomocí příkazu Linux ping

  3. Zvládněte příkaz Linux ls

  1. Jak používat příkaz „at“ k naplánování úkolu na daný nebo pozdější čas v Linuxu

  2. Vyhledejte příkaz v Linuxu

  3. Jak naplánovat úlohy pomocí at v Linuxu

  1. Sledujte příkazy a úkoly pomocí příkazu watch v systému Linux

  2. Najděte čas provedení příkazu nebo procesu v systému Linux

  3. JQ Command v Linuxu s příklady