GNU/Linux >> Znalost Linux >  >> Linux

At Command v Linuxu

at je nástroj příkazového řádku, který vám umožňuje naplánovat provádění příkazů v určitý čas. Úlohy vytvořené pomocí at jsou provedeny pouze jednou.

V tomto článku vysvětlíme, jak používat at a jeho doprovodné nástroje batch , atq , atrm pro zobrazení, odstranění a vytvoření úloh, které mají být provedeny později.

Instalace at #

V závislosti na distribuci at může nebo nemusí být přítomen ve vašem systému Linux.

Pokud at není nainstalován, můžete jej snadno nainstalovat pomocí správce balíčků vaší distribuce.

  • Nainstalujte at na Ubuntu a Debianu

    sudo apt update sudo apt install at
  • Nainstalujte at na CentOS a Fedoře

    sudo yum install at

Jakmile je program nainstalován, ujistěte se, že atd , plánovací démon běží a je nastaven na spuštění při spouštění:

sudo systemctl enable --now atd

Jak používat at Příkaz #

Zjednodušená syntaxe pro at příkaz je následující:

at [OPTION...] runtime

at příkaz přebírá datum a čas (runtime ), když chcete provést úlohu jako parametr příkazového řádku a příkaz, který se má provést ze standardního vstupu.

Vytvořme úlohu, která bude provedena v 9:00:

at 09:00

Jakmile stisknete Enter , zobrazí se vám at příkazový řádek, který nejčastěji začíná at> . Zobrazí se také varování, které vám sdělí shell, ve kterém bude příkaz spuštěn:

warning: commands will be executed using /bin/sh
at>

Zadejte jeden nebo více příkazů, které chcete provést:

tar -xf /home/linuxize/file.tar.gz

Po zadání příkazů stiskněte Ctrl-D pro ukončení výzvy a uložení úlohy:

at> <EOT>
job 4 at Tue May  5 09:00:00 2020

Příkaz zobrazí číslo úlohy a čas a datum provedení.

Existují také další způsoby, jak předat příkaz, který chcete spustit, kromě zadání příkazu do at výzva. Jedním ze způsobů je použití echo a přesměrujte příkaz do at :

echo "command_to_be_run" | at 09:00

Další možností je použít dokument Here:

at 09:00 <<ENDcommand_to_be_runEND

Chcete-li číst příkazy ze souboru namísto standardního vstupu, vyvolejte příkaz pomocí -f možnost následovaná cestou k souboru. Chcete-li například vytvořit úlohu, která bude spouštět skript /home/linuxize/script.sh :

at 09:00 -f /home/linuxize/script.sh

Ve výchozím nastavení, pokud příkaz vytváří výstup, at po dokončení úlohy odešle uživateli e-mail s výstupem. Vyvolejte at s -M možnost potlačení e-mailového upozornění:

at 09:00 -M

Použijte -m odeslat e-mail, i když není žádný výstup:

at 09:00 -m

batch Příkaz #

batch nebo jeho alias at -b naplánuje úlohy a provede je v dávkové frontě, když to úroveň zatížení systému dovolí. Ve výchozím nastavení jsou úlohy prováděny, když je průměrná zátěž systému nižší než 1,5. Hodnotu zatížení lze zadat při vyvolání atd démon. Pokud je průměr zatížení systému vyšší než zadaný, úlohy budou čekat ve frontě.

Chcete-li vytvořit úlohu pomocí batch , předejte příkazy, které chcete provést:

echo "command_to_be_run" | batch

Určení času provedení #

at utilita akceptuje širokou škálu časových specifikací. Můžete zadat čas, datum a přírůstek od aktuálního času:

  • Čas - Chcete-li zadat čas, použijte HH:MM nebo HHMM formulář. Chcete-li uvést 12hodinový formát času, použijte am nebo pm po čase. Můžete také použít řetězce jako now , midnight , noon nebo teatime (16:00). Pokud zadaný čas uplyne, úloha bude provedena následující den.

  • Datum - Příkaz umožňuje naplánovat provedení úlohy na daný den. Datum lze zadat pomocí názvu měsíce následovaného dnem a volitelným rokem. Můžete použít řetězce, například today , tomorrow , nebo všední den. Datum lze také uvést pomocí MMDD[CC]YY , MM/DD/[CC]YY , DD.MM.[CC]YY nebo [CC]YY-MM-DD formátů.

  • Přírůstek - at také přijímá přírůstky v now + count time-unit formát, kde count je číslo a time-unit může být jeden z následujících řetězců:minutes , hours , days nebo weeks .

Čas, datum a přírůstek lze kombinovat, zde je několik příkladů:

  • Naplánujte si úlohu na nadcházející neděli o deset minut později, než je aktuální čas:

    at sunday +10 minutes
  • Naplánujte spuštění úlohy ve 13:00 za dva dny:

    at 1pm + 2 days
  • Naplánujte spuštění úlohy na 21. října 2020 ve 12:30:

    at 12:30 102120
  • Naplánujte spuštění úlohy za hodinu:

    at now +1 hours

Můžete také zadat čas a datum v [[CC]YY]MMDDhhmm[.ss] pomocí -t volba. Zde je příklad:

at -t 202005111321.32

Zadání fronty č.

Ve výchozím nastavení jsou úlohy vytvořeny pomocí at jsou naplánovány ve frontě s názvem a a úlohy vytvořené pomocí batch jsou naplánovány v b fronta.

Dotazy mohou mít název z a do z a A do Z . Fronty s nižšími písmeny běží s nižší přesností, což znamená, že mají přednost před těmi s vyššími písmeny.

Frontu můžete určit pomocí -q volba. Chcete-li například nastavit úlohu v L fronty, spustíte:

at monday +2 hours -q L

Výpis čekajících zakázek #

Chcete-li zobrazit seznam čekajících úloh uživatele, spusťte atq nebo at -l příkaz:

atq

Výstup zobrazí všechny úlohy, jednu na řádek. Každý řádek obsahuje číslo úlohy, datum, čas, písmeno ve frontě a uživatelské jméno.

9	  Tue May  5 12:22:00 2020 a linuxize
12	Wed Oct 21 12:30:00 2020 a linuxize
15	Tue May  5 09:00:00 2020 a linuxize
6	  Tue May  5 09:00:00 2020 a linuxize
13	Mon May  4 23:08:00 2020 a linuxize
11	Wed Jul  1 10:00:00 2020 a linuxize
4	  Tue May  5 09:00:00 2020 a linuxize

Když atq je vyvolán jako administrátor, zobrazí seznam čekajících úloh všech uživatelů.

Odebírání čekajících úloh #

Chcete-li odstranit čekající úlohu, vyvolejte atrm nebo at -r příkaz následovaný číslem úlohy. Chcete-li například odstranit úlohu s číslem devět, spustili byste:

atrm 9

Omezení uživatelů #

Soubor /etc/at.deny a /etc/at.allow soubory umožňují řídit, kteří uživatelé mohou vytvářet úlohy pomocí at nebo batch příkaz. Soubory se skládají ze seznamu uživatelských jmen, jedno uživatelské jméno na řádek.

Ve výchozím nastavení pouze /etc/at.deny soubor existuje a je prázdný, což znamená, že všichni uživatelé mohou použít at příkaz. Pokud chcete odepřít oprávnění konkrétnímu uživateli, přidejte uživatelské jméno do tohoto souboru.

Pokud /etc/at.allow soubor existuje pouze uživatelé, kteří jsou uvedeni v tomto souboru, mohou použít at příkaz.

Pokud žádný ze souborů neexistuje, mohou at používat pouze uživatelé s oprávněními správce příkaz.

Závěr č.

at obslužný program čte příkazy ze standardního vstupu a provádí je později. Na rozdíl od crontab, úlohy vytvořené pomocí at jsou provedeny pouze jednou.

Další informace o všech dostupných možnostech at typ příkazu man at ve vašem terminálu.

Pokud máte nějaké dotazy, neváhejte zanechat komentář.


Linux
  1. Linuxový příkaz mv

  2. Linux du command

  3. Linuxový ip příkaz

  1. Linux příkaz ifconfig

  2. Linux Time Command

  3. Linux cd příkaz

  1. Příkaz Ping v Linuxu

  2. Linux Watch Command

  3. Příkaz Xargs v Linuxu