Příkaz AT

16. dubna 2025

Lang: cs en de es

Potř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.


+