Příkaz AT
16. dubna 2025Potřebujete jednorázově spustit úlohu v určitý čas? Zní to jako úloha pro cron. Ale cron slouží k opakovanému pravidelnému spouštění. Pro jednorázové spuštění úlohy v předem definovaný čas použijte příkaz "at". V tomto článku vás naučím, jak příkaz "at" použít.
Instalace
Jak je standard u linuxových distribucí, tak všechny aplikace jsou k dispozici jako připravený balíček dané linuxové distribuce. Stejně tak příkaz "at" je běžně k dispozici v repositáři vaší distribuce.
V distribuci Mageia nainstalujete program "at" následujícím příkazem:
urpmi at
V distribuci Debian nainstalujete program "at" následujícím příkazem:
apt-get install at
Příkaz "at
" běží na pozadí, tedy jako démon, a spouští úlohy pod uživatelem, který úlohu naplánoval.
Proto je třeba démona nastartovat a povolit start démona "at" po bootu počítače.
Provedete to příkazem:
systemctl enable atd && systemctl start atd
Příkaz at
Příkaz "at
" slouží k naplánování jednorázového spuštění příkazu nebo skriptu v konkrétní čas v
budoucnosti.
Základní použití
Interaktivní režim
at 16:00
Poté napíšete příkazy a ukončíte zadáním Ctrl+D
.
Naplánování úlohy
echo "ls -l /home/user" | at 14:30
Provede příkaz "ls -l /home/user
" v čase 14:30 stejného dne.
Naplánování vypnutí počítače na konkrétní datum
echo "reboot" | at 23:59 31.12.2025
Zobrazení naplánovaných úloh
Pokud chcete zkontrolovat jaký uživatel naplánovat co na jaký čas, použijte následující příkaz, který vypíše seznam naplánovaných úloh s časem jejich spuštění:
atq
Alternativně lze použít
at -l
Zrušení naplánované úlohy
Můžete se rozhodnou, že nějakou úlohu chcete zrušit. Úlohu, která je naplánována, je možno zrušit. Naplánovanou úlohu smažete příkazem:
atrm <číslo úlohy>
Číslo úlohy zjistíte z výpisu příkazu atq
.
Speciální časy
at now + 1 hour
→ Spustí příkaz za 1 hodinu.at now + 30 minutes
→ Spustí příkaz za 30 minut.at midnight
→ Spustí úlohu o půlnoci.at teatime
→ Spustí úlohu v 16:00.
Video návod
Praktická video ukázka jakou používat příkaz AT:
Příkazy v souboru
Příkazy nemusíte zadávat ručně, ale můžete to co potřebujete vykonat zapsat do souboru. A následně tento soubor předávat programu "at". Obzvlášť pokud mate složitý příkaz nebo víte, že ho budete chtít spouštět ještě někdy v budoucnu, tak je dobré si to zapsat a následně ušetříte čas.
Váš skript následně předáte programu "at" takto:
at -f config.at 13:00 2024-04-05
Pozor na defaultní shell
Příkaz "at
" umožňuje spouštět úlohy v určitém čase, ale důležité je si uvědomit, že tyto úlohy se
standardně spouští v neinteraktivním shellu (obvykle v /bin/sh
nebo jiném výchozím systémovém shellu). To
může způsobit problémy, pokud uživatel očekává, že se použije jeho preferovaný shell (např. bash
,
zsh
) nebo že budou dostupné určité proměnné prostředí.
Proč konkrétně je to třeba zvážit:
- Jiný shell než váš interaktivní – Například pokud používáte
bash
, ale "at
" spouští/bin/sh
, pak některé konstrukce například([[ ... ]]
,declare
,source
nemusí fungovat. - Chybějící proměnné prostředí – Úloha spuštěná přes
at
nemá stejné prostředí jako váš interaktivní shell. Například nemusí být dostupné vaše vlastní aliasy, funkce nebo modifikované$PATH
. - Nutnost explicitně zadat shell – Pokud chcete, aby
at
úloha běžela ve specifickém shellu, musíte to explicitně zadat.
Doporučuji proto vždy uvést v jakém shellu chce vaše příkazy spouštět, aby jste pak zbytečně nezkoumali, proč se váš skript chová jinat když ho spouštíte ručně než když ho spouštíte pomocí programu "at".
Automatizujte
Program "at" je jedním z mnoha programů, který vám usnadní práci pokud používáte tak silný nástroj jako je operační systém Linux na svých serverech. Používejte nástroje, které vám usnadní práci a automatizujte úkoly, které by jste jinak museli dělat ručně. Ušetříte tak spoustu času a tím pádem i peněz.
Články na podobné téma
Docker build multiarch image
VMware vs Proxmox: porovnání výkonu
GitLab CI/CD: automatizace testů a nasazení aplikace
Migrace VPS z VMware na Proxmox
Změna licencování VMware
Provoz Microsoft SQL serveru na Linuxu
Zálohování: Proxmox backup server
Linux jako router a firewall
Jak náhrát docker image do Docker Registry
Linux: Logical Volume Management
Linuxový softwarový RAID
Provoz webové aplikace za proxy
Migrace mail schránek
Docker multistage build
Zálohování dat zapnutím počítače
Podman
Import Windows do virtualizace Proxmox
Docker a PHP mail
Virtualizace Proxmox
Docker a Cron
Lenovo ThinkPad X1 Carbon: zprovoznění LTE modemu EM7544
Yocto Project: Build vlastního operačního sytému pro embedded zařízení
Příprava linuxového serveru pro běh webové aplikace v jazyce Python
Jak řešit špatný výkon sdílených souborů u Dockeru
Jak začít správně používat Docker
Instalace Linuxu na dedikovaný server HPE ProLiant DL320e
Jak provést zátěžový test webové aplikace
Proč používat filesystém JFS
Jak bootovat z 4TB disku s GTP pomocí UEFI
Jak nainstalovat operační systém Mageia Linux bez DVD mechaniky
Souborový systém Btrfs
Raspberry PI
Jak zprovoznit vzdálené přehrávání přes síť na televizi s DLNA
Upgrade Mandriva Linuxu za běhu
Poznámky ke GNU/Linux
WINE - spouštíme programy pro Windous pod Linuxem
Operační systém GNU/Linux
Odběr novinek
Pokud máte zájem dostávat příležitostně na email novinky.
Můžete se vyplněním emailu registrovat k
odběru novinek.
+