Musíte spustit příkaz pouze jednou dnes večer, zítra ráno nebo po okně údržby? at zabraňuje vytvoření cron úlohy, na kterou potom zapomenete. Má však jednu podmínku: služba atd musí běžet a příkaz bude vykonán pomocí /bin/sh, nikoli nutně vaším interaktivním shellem.
Metoda níže umožňuje naplánovat, kontrolovat a poté odstranit úlohu před jejím provedením. Použijte absolutní cestu pro skripty a logy. Úloha at nevyužívá váš terminál ani vaše bash nastavení.

Nainstalujte at a zkontrolujte službu
Na Debianu, Ubuntu a jejich derivátech nainstalujte balík a poté aktivujte démon. Na Fedora, RHEL nebo Rocky Linux nahraďte apt za dnf.
sudo apt update
sudo apt install at
sudo systemctl enable --now atd
systemctl status atd --no-pager
Status musí ukazovat active (running). Pokud váš účet dostane odmítnutí, zkontrolujte /etc/at.allow a /etc/at.deny. Tyto soubory určují, které uživatelské účty mají právo odesílat úlohy.
Naplánujte příkaz bez vytvoření cron
Pro testování bez ovlivnění systému vytvořte malý soubor ve vašem domovském adresáři za pět minut. Zadejte příkaz a poté ukončete zadávání pomocí Ctrl + D.
at now + 5 minutes
mkdir -p "$HOME/at-test"
date > "$HOME/at-test/executed-at.txt"
# poté stiskněte Ctrl+D
Pro skutečnou intervenci se vyvarujte relativních cest. Následující úloha restartuje službu zítra v 02:30 a uchovává stdout a stderr v známém logu:
at 02:30 tomorrow
/usr/bin/systemctl restart my-service.service >> /var/log/my-service-at.log 2>&1
# poté stiskněte Ctrl+D
Neplánujte restart nebo vzdálenou změnu, aniž byste příkaz nejdříve zkontrolovali ručně. Pokud pracujete přes SSH, držte otevřenou druhou relaci před změnou, která by mohla přerušit síť nebo službu.
Přečtěte si úlohu a zkontrolujte čas na stroji
atq zobrazuje čekající úlohy s jejich identifikátory. at -c ukazuje skutečně zaregistrovaný skript. Tato kontrola je užitečná, když proměnná, aktuální adresář nebo přesměrování rozhodují o vašem příkazu.
atq
at -c 7
timedatectl status
Nahraďte 7 číslem zobrazeným příkazem atq. Zkontrolujte také časové pásmo pomocí timedatectl status. Datum zadané v at je interpretováno strojem, který vykonává démon. Server nastavený na UTC nutně nespustí úlohu v čase zobrazeném na vašem počítači.
Zrušení úlohy před jejím provedením
Odstranění je okamžité. Získejte id, odstraňte úlohu a poté znovu spusťte atq, abyste potvrdili, že zmizela.
atrm 7
atq
Použijte at pro jednorázovou akci: úklid po migraci, jednorázový restart nebo odložený test. Pro opakující se úlohu raději používejte cron a crontab nebo systemd timer. V hlavní roli se vyhnete přetváření jednorázového příkazu na zapomenutou automatizaci.