GNU/Linux >> Znalost Linux >  >> Linux

Jak přidat linuxové příkazy do fronty a spouštět je jeden po druhém

Dnes jsem narazil na skvělou linuxovou utilitu příkazového řádku s názvem "Task Spooler" . Jak již název napovídá, Task Spooler je unixový dávkový systém, který lze použít k přidání linuxových příkazů do fronty a jejich spouštění jeden po druhém v číselném pořadí (ve vzestupném pořadí, abych byl přesný). Nezaměňujte jej s výrazem 'at' příkaz, který se používá k provádění příkazů Linuxu v určený čas. Na rozdíl od at zařazování úloh spustí příkaz okamžitě z fronty, jakmile je dokončen předchozí příkaz.

Tento nástroj může být velmi užitečný, když musíte spouštět mnoho příkazů, ale nechcete ztrácet čas čekáním na dokončení jednoho příkazu a spuštění dalšího příkazu. Můžete je všechny zařadit do fronty a Spooler úloh je provede jeden po druhém. Mezitím se můžete věnovat jiným činnostem. Každý uživatel v každém systému má svou vlastní frontu úloh. Je to také velmi užitečné, když víte, že vaše příkazy závisí na velkém množství paměti RAM, velkém využití disku, poskytují velký výkon nebo z jakéhokoli důvodu je lepší je nespouštět současně. Stručně řečeno, Task Spooler je program příkazového řádku, který zařazuje další příkazy do fronty pro dávkové provádění.

Stáhnout - Zdarma e-kniha:"Cheat Sheet pro příkazový řádek Linuxu"

V tomto krátkém tutoriálu vám ukážu, jak nainstalovat a používat Spooler úloh v operačních systémech podobných Unixu.

Nainstalujte Spooler úloh na Debian, Ubuntu, Linux Mint

Task Spooler je k dispozici ve výchozích úložištích Debianu, Ubuntu a dalších systémů založených na DEB. Můžete jej tedy nainstalovat pomocí příkazu:

$ sudo apt-get install task-spooler

Pro ostatní systémy si můžete stáhnout zdrojový soubor Task Spooler z tohoto odkazu a sestavte jej jako nativní balíček pro distribuci Linuxu, kterou používáte, a nainstalujte jej, jak je vysvětleno v kterékoli z následujících metod.

  • Jak snadno vytvářet balíčky Linuxu pro více platforem
  • Jak sestavit balíčky ze zdroje pomocí CheckInstall

Přidejte příkazy systému Linux do fronty a spouštějte je jeden po druhém pomocí služby Task Spooler

Podívejme se na několik praktických příkladů. Všechny zde uvedené příklady jsou testovány v systému Ubuntu 18.04 LTS.

Poznámka: V systémech Debian/Ubuntu by měl být Task Spooler spuštěn příkazem 'tsp', protože existuje jiný program se stejným názvem, který se jmenuje ts (nástroj Time Stamping Authority (klient/server)). Pro jiné distribuce Linuxu než Ubuntu/Debian jej můžete spustit pomocí příkazu 'ts'.

Spusťte příkaz tsp:

$ tsp

Právě teď není ve frontě nic. Pojďme přidat nějaké příkazy do fronty. Chcete-li to provést, spusťte:

$ tsp echo Welcome OSTechNix
$ tsp echo "Hello World"

Nyní znovu spusťte příkaz tsp a zobrazte příkazy ve frontě:

$ tsp

Ukázkový výstup:

ID State Output E-Level Times(r/u/s) Command [run=0/1]
0 finished /tmp/ts-out.jpHIG1 0 0.01/0.00/0.00 echo Welcome OSTechNix
1 finished /tmp/ts-out.8H6LLB 0 0.00/0.00/0.00 echo Hello World

Jak vidíte na výše uvedeném výstupu, každý příkaz má jedinečné ID v (0, 1, 2.. atd.) ve vzestupném pořadí. Také zobrazuje aktuální stav příkazů (např. dokončených nebo spuštěných) ve frontě. Příkazy echo jsou velmi jednoduché a krátké, takže výsledek je 'hotový'.

Spusťte nějaký příkaz, jehož dokončení trvá déle. Podívejte se na následující příkaz:

$ find / -type f -printf '%T+ %p\n' | sort | head -n 20

Tento příkaz vyhledá a zobrazí prvních 20 nejstarších souborů v kořenovém (/) systému souborů.

Nyní přidejte výše uvedený příkaz do fronty:

$ tsp find / -type f -printf '%T+ %p\n' | sort | head -n 20

Ukázkový výstup:

2

Nyní spusťte příkaz tsp a zobrazte seznam příkazů ve frontě.

$ tsp

Ukázkový výstup:

ID State Output E-Level Times(r/u/s) Command [run=1/1]
2 running /tmp/ts-out.79rMXn find / -type f -printf %T+ %p\n
0 finished /tmp/ts-out.jpHIG1 0 0.01/0.00/0.00 echo Welcome OSTechNix
1 finished /tmp/ts-out.8H6LLB 0 0.00/0.00/0.00 echo Hello World

Přidejte příkazy Linuxu do fronty pomocí služby Task Spooler

Jak vidíte na výše uvedeném výstupu, příkaz s ID 2 je spuštěn. Podobně můžete pomocí služby Task Spooler přidat libovolný počet příkazů, které chcete spustit.

Aktualizace:

Jak jeden z našich čtenářů zmínil v sekci komentářů, příkaz find by měl být spuštěn následovně:

$ tsp sh -c "find Downloads/ -type f -printf '%T+ %p\n' | sort | head -n 20"

Chcete-li zobrazit výstup spuštěné úlohy a zkontrolovat, co se děje, zadejte následující příkaz:

$ tsp -c 2

Zde je 2 ID spuštěného příkazu. Stiskněte CTRL+C pro návrat zpět do Terminálu. Nezruší spuštěný příkaz. Dostane vás pouze zpět do Terminálu. Úloha bude stále běžet na pozadí.

Příkaz (spuštěný, dokončený, zařazený do fronty) můžete z fronty odebrat pomocí -r příznak následovaný ID jako níže.

$ tsp -r 2

Výše uvedený příkaz odstraní příkaz s ID 2 z fronty.

Chcete-li vymazat všechny příkazy z fronty, jednoduše spusťte:

$ tsp -C

Upozorňujeme, že zde C je kapitál . Výše uvedený příkaz vymaže poslední dokončené příkazy z fronty. Neodstraní žádné spuštěné příkazy ani příkazy ve frontě.

Pamatujte, že musíte spouštět Task Spooler v jiných distribucích než Debian/Ubuntu pomocí ts příkaz.

Další podrobnosti naleznete na manuálových stránkách.

$ man ts

Nebo,

$ man tsp

Doporučené čtení:

  • Jak spustit příkaz po určitou dobu v systému Linux

Závěr

Spooler úloh považuji za velmi užitečný, když musím spouštět více příkazů. Jsem jen líný chlapík čekat na dokončení jednoho příkazu a provést druhý. Pomocí spooleru úloh jsem zařadil do fronty seznam příkazů, které se mají provést, a spouštěl příkazy z fronty jeden po druhém ve vzestupném pořadí. Mohu také kdykoli zobrazit výstup jakéhokoli spuštěného příkazu pomocí jeho ID. Mějte prosím na paměti, že nebude spouštět všechny příkazy najednou. Místo toho bude spouštět příkazy jeden po druhém. To znamená, že Spooler úloh je určen pro provádění dávkových úloh.


Linux
  1. Jak uložit příkazy Linuxu a používat je na vyžádání

  2. Linuxové příkazy:jobs, bg a fg

  3. Jak přidat ukazatel průběhu pro kopírování a přesouvání příkazů v Linuxu?

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

  2. Jak namapovat jeden příkaz Vim k provádění příkazů Bash založených na OS?

  3. Jak komprimovat a extrahovat soubory pomocí příkazu tar v systému Linux?

  1. Sledujte příkazy a úkoly pomocí příkazu watch v systému Linux

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

  3. Jak vytvořit alias a používat příkaz Alias ​​v Linuxu