GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak používat Linux na Command

Úvod

at command je nástroj příkazového řádku Linuxu používaný k naplánování úlohy pro pozdější spuštění. Nástroj čte příkazy ze standardního vstupu a seskupuje je do at úloha, která se provede pouze jednou.

Alternativa pro at je cron práce. Když však at úlohy se provádějí pouze jednou, úlohy cron jsou opakující se události.

V tomto tutoriálu se naučíte používat at příkaz a podívejte se na užitečné příklady plánování příkazů.

Předpoklady

  • Systém se systémem Linux.
  • Uživatelský účet s právy sudo.

Nainstalujte at Command

V závislosti na tom, kterou distribuci Linuxu používáte, at příkaz nemusí být předem nainstalován.

Zkontrolujte, zda at se instaluje zadáním názvu příkazu do terminálu:

Pokud nástroj není předinstalován, výstupní zpráva uvádí Příkaz 'at' nebyl nalezen .

Instalujte na na Ubuntu a Debian

Při instalaci at postupujte podle níže uvedených kroků na Ubuntu nebo Debianu:

1. Aktualizujte úložiště balíčků:

sudo apt update

2. Nainstalujte at příkaz spuštěním:

sudo apt install at

Instalujte na na CentOS a Fedora

Při instalaci at postupujte podle níže uvedených kroků na CentOS nebo Fedoře:

1. Aktualizujte úložiště balíčků:

sudo yum -y update

2. Spuštěním následujícího příkazu nainstalujte at :

sudo yum install at

Povolit plánovacího démona

Plánovací démon běží na pozadí a provádí naplánované úlohy včas.

Po instalaci at spusťte následující příkaz balíček pro aktivaci atd plánovacího démona a nastavte jej tak, aby se spouštěl při spouštění systému.

sudo systemctl enable --now atd

Linux na příkaz Syntaxe a možnosti

Syntaxe pro at příkaz je:

at [option] runtime

Možnosti vám umožňují zobrazit nebo odstranit naplánované úlohy a přizpůsobit at příkaz plánování úloh. Dostupné možnosti jsou:

Možnost Popis
-V Vytiskne číslo verze programu na standardní výstup.
-q [queue] Používá zadanou [queue] skládající se z jednoho písmene v rozsahu od a -z a A -Z . a fronta je výchozí pro at a b fronta je výchozí pro batch . Fronty s vyššími písmeny běží se zvýšenou laskavostí.
Odeslání úlohy do fronty s velkým písmenem považuje úlohu za odeslanou do batch . batch pravidla zatížení průměrného se použijí, jakmile nastane čas na provedení úlohy. Určení fronty pro atq způsobí, že zobrazí pouze úlohy čekající v této frontě.
-m Po dokončení úlohy odešle uživateli e-mail, i když nedošlo k žádnému výstupu. Vyžaduje nakonfigurovanou e-mailovou adresu pro uživatele, který úlohu naplánoval.
-f [file] Přečte úlohu ze zadaného [file] spíše než ze standardního vstupu.
-b Alias ​​pro batch . Plánuje úlohy a provádí je v batch fronta, když je průměrná úroveň zatížení systému nižší než 1,5.
-l Alias ​​pro atq . Uvádí seznam nevyřízených úloh uživatele. Pokud je uživatel superuživatel, zobrazí seznam všech čekajících úloh uživatelů.
-d Alias ​​pro atrm . Odstraní naplánované úlohy identifikované podle čísla úlohy.
-v Zobrazuje čas provedení úlohy před přečtením úlohy. Formát času je Thu Feb 20 14:50:00 1997 .
-c Catuje zadanou úlohu a zobrazuje její obsah ve standardním výstupu příkazového řádku.
-t [time_arg] Naplánuje úlohu na dobu určenou parametrem [time_arg] argument. Přijímaný formát času je [[CC]YY]MMDDhhmm .

[runtime] Časové výrazy

Naplánujte úlohu pomocí výrazů absolutního času nebo výrazů času vzhledem k času nastavení úlohy.

Dostupné výrazy absolutního času jsou:

  • YYMMDDhhmm[.ss] . Zadejte zkrácený rok, měsíc, den, hodinu, minutu a volitelně sekundy.
  • CCYYMMDDhhmm[.ss] . Zadejte celý rok, měsíc, den, hodinu, minutu a volitelně sekundy.
  • now . Označuje aktuální den a čas a okamžité provedení.
  • midnight . Označuje 00:00 AM.
  • noon . Indikace 12:00.
  • teatime . Interpretováno jako 16:00.
  • AM . Označuje čas před 12:00.
  • PM . Označuje čas po 12:00.
  • today . Aktuální den.
  • tomorrow . Den po aktuálním dni.

Například následující příkaz naplánuje vyvolání příkazu echo na 17:00:

echo "hello" | at 5PM

Zadejte výraz relativního času přidáním znaménka plus (+ ), částku a jednu z následujících:

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

Použití časových výrazů jako tomorrow nebo tuesday , naplánuje úlohy na tyto dny v aktuálním čase. Dále zadejte čas pomocí + postava.

Například následující příkaz naplánuje echo vyvolání příkazu pět minut po naplánování úlohy:

echo "hello" | at now +5 minutes

Prostředí

SHELL hodnota proměnné prostředí určuje, který shell (bash, zsh atd.) bude at příkaz používá k provedení úlohy. Při plánování úlohy příkaz varuje uživatele, který shell během provádění použije.

Příklady Linuxu

Následující část ukazuje užitečné at příklady příkazů.

Interaktivně naplánujte úlohu

at umožňuje naplánovat úlohu pomocí interaktivního at výzva. Otevřete interaktivní výzvu pomocí následující syntaxe:

at [runtime]

Interaktivní výzva vám umožňuje zadat, které příkazy se mají spustit v určený čas. Příkaz také vypíše varování, které shell příkaz použije.

Ukončete interaktivní výzvu a uložte naplánovanou úlohu stisknutím Ctrl + D . Zrušte úlohu pomocí Ctrl + C .

Například:

Ve výše uvedeném příkladu jsme naplánovali úlohu na 17:00, což otevře interaktivní výzvu. Naplánovaná úloha má provést echo a nástroj používá standardní bash shell.

Nasměrujte úlohu na

Naplánujte si úlohu bez interaktivního at vyžádejte pomocí potrubních příkazů na at a určení doby běhu. Použijte echo nebo printf pro předání příkazů do at .

Například:

echo "command_to_run" | at [runtime]

Chcete-li naplánovat at úloha, která odesílá echo výstup příkazu do souboru, použijte:

echo "hello" >> example.txt | at now

Pomocí příkazu cat zkontrolujte, zda soubor existuje, abyste se ujistili, že byla úloha provedena:

cat example.txt

Zobrazit naplánovanou úlohu

-c zobrazí obsah dříve naplánované úlohy. Tato možnost je užitečná, pokud zapomenete, jaká byla úloha, nebo chcete zkontrolovat naplánovaný čas.

Podívejte se na obsah naplánovaného at job pomocí následující syntaxe:

at -c [job_number]

Číslo úlohy získáte spuštěním atq nejprve příkazem k zobrazení seznamu všech čekajících úloh.

Například:

Ve výše uvedeném příkladu jsme nejprve požadovali seznam všech čekajících úloh, abychom získali čísla úloh, a poté jsme obsah úlohy 14 zobrazili ve standardním výstupu.

Seznam naplánovaných úloh

at vám umožňuje zkontrolovat, které úlohy jsou stále ve frontě a čekají na provedení. Existují dva způsoby, jak zobrazit čekající úlohy:

  • Spusťte atq příkaz.
  • Použijte -l možnost.

Například:

at -l

Výstup zobrazuje číslo čekající úlohy, datum, čas, rok a frontu aktuálního uživatele. Chcete-li zobrazit čekající úlohy všech uživatelů, spusťte příkaz pomocí sudo .

sudo atq

Ve výše uvedeném příkladu spuštění atq zobrazuje čekající úlohy pouze pro aktuálního uživatele. Spuštění atq pomocí sudo zobrazuje čekající úlohy pro všechny uživatele.

Odeslat e-mailové oznámení o provedení

at nástroj ve výchozím nastavení odesílá e-mailová upozornění o dokončených úlohách. E-mailová upozornění vyžadují funkční e-mailovou adresu nakonfigurovanou pro váš uživatelský účet a systém musí být schopen odesílat e-maily.

Pokyn at chcete-li posílat e-mailová upozornění na dokončení úlohy, i když není žádný výstup, zadejte -m možnost.

Například:

rm example.txt | at -m tomorrow

Výše uvedený příkaz naplánuje úlohu na zítřejší aktuální čas. Po dokončení at nástroj upozorní uživatele pomocí nakonfigurované e-mailové adresy pro uživatele bosko .

Provádět úlohy bez upozornění

Chcete-li se vyhnout přijímání e-mailových upozornění na dokončené úlohy, zadejte -M možnost při plánování at práce.

Například:

echo "shutdown -h now" | at -M 00:00

Ve výše uvedeném příkladu jsme naplánovali vypnutí systému na půlnoc a použili jsme -M možnost zabránit nástroji v odesílání e-mailových upozornění.

Odstranění naplánované úlohy

Chcete-li odstranit naplánované at úlohy, zadejte -r nebo spusťte atrm příkaz spolu s ID úlohy. Získejte ID úlohy spuštěním atq nebo pomocí -l možnost.

V následujícím příkladu jsme odstranili úlohu 12:

Omezit uživatele

at balíček využívá dva soubory k omezení at a batch příkazový přístup:

  • /etc/at.allow
  • /etc/at.deny

Upravte soubory tak, aby je mohli vytvářet, odstraňovat nebo zobrazovat čekající at pouze určitým uživatelům pracovní místa. Soubory jsou seznamem uživatelských jmen, která mají nebo nemají přístup k at příkazy. Uživatelská jména odděluje znak nového řádku a mezery nejsou povoleny.

Důležité :Pokud /etc/at.allow soubor existuje, pouze uživatelé v něm uvedení mohou používat at nebo batch a /etc/at.deny soubor je ignorován. Pokud /etc/at.allow soubor neexistuje, uživatelé uvedení v /etc/at.deny nemají povoleno používat at nebo batch . Uživatel root může vždy spustit at bez ohledu na soubory řízení přístupu.

Upravte /etc/at.deny soubor s právy sudo k odepření přístupu uživatele k at příkazy. V následujícím příkladu jsme soubor upravili pomocí editoru vi:

sudo vi /etc/at.deny

Po přidání uživatelského jména do seznamu spusťte at pomocí uživatelského účtu s omezeným přístupem se zobrazí následující zpráva:

Provádět úlohy, když to zatížení systému dovolí

batch příkaz (-b možnost) naplánuje at úloha pro provedení, když průměrné zatížení systému klesne pod 1,5. Provádění úloh při nízkém zatížení systému zabraňuje spotřebě všech systémových prostředků a zajišťuje optimální provoz systému.

Například následující úloha se spustí, jakmile zatížení systému klesne pod 1,5:

batch
echo "Hello world!" >> hello.txt

Ubuntu
  1. Jak používat Linuxový příkaz grep

  2. Jak používat příkaz historie v Linuxu

  3. Jak používat příkaz id v Linuxu

  1. Jak používat příkaz Apt-Get v Linuxu

  2. Jak používat příkaz sudo v Linuxu

  3. Jak používat příkaz „screen“ v Linuxu

  1. Jak používat příkaz locate v Linuxu

  2. Jak používat příkaz historie Linuxu

  3. Jak používat příkaz xargs pro Linux