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 poledne , 13:30 , 13: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.