GNU/Linux >> Linux Esercitazione >  >> Linux

Come aggiungere comandi Linux alla coda ed eseguirli uno per uno

Oggi mi sono imbattuto in una fantastica utility da riga di comando Linux chiamata "Task Spooler" . Come dice il nome, Task spooler è un sistema batch Unix che può essere utilizzato per aggiungere i comandi Linux alla coda ed eseguirli uno dopo l'altro in ordine numerico (crescente, per la precisione). Si prega di non confonderlo con 'at' comando, che viene utilizzato per eseguire comandi Linux in un momento specifico. A differenza di a comando, lo spooler attività esegue un comando immediatamente dalla coda non appena il comando precedente è terminato.

Questa utility può essere molto utile quando devi eseguire molti comandi, ma non vuoi perdere tempo ad aspettare che un comando finisca ed esegua il comando successivo. Puoi metterli in coda tutti e Task Spooler li eseguirà uno per uno. Nel frattempo, puoi svolgere altre attività. Ogni utente in ogni sistema ha la propria coda di lavoro. È anche molto utile quando sai che i tuoi comandi dipendono da molta RAM, molto uso del disco, danno molto output o per qualsiasi motivo è meglio non eseguirli contemporaneamente. In poche parole, Task Spooler è un programma a riga di comando per mettere in coda altri comandi per l'esecuzione batch.

Scarica - EBook gratuito:"Linux Command Line Cheat Sheet"

In questo breve tutorial, lascia che ti mostri come installare e utilizzare Task Spooler in sistemi operativi simili a Unix.

Installa Task Spooler su Debian, Ubuntu, Linux Mint

Task Spooler è disponibile nei repository predefiniti di Debian, Ubuntu e altri sistemi basati su DEB. Quindi, puoi installarlo usando il comando:

$ sudo apt-get install task-spooler

Per altri sistemi, puoi scaricare il file sorgente di Task Spooler da questo link e compilalo come pacchetto nativo per la distribuzione Linux che usi e installalo come spiegato in uno dei seguenti metodi.

  • Come creare facilmente pacchetti Linux per più piattaforme
  • Come creare pacchetti dal sorgente utilizzando CheckInstall

Aggiungi comandi Linux alla coda ed eseguili uno per uno utilizzando Task Spooler

Vediamo alcuni esempi pratici. Tutti gli esempi forniti qui sono testati nel sistema Ubuntu 18.04 LTS.

Nota: Nei sistemi Debian/Ubuntu, Task Spooler dovrebbe essere eseguito con il comando 'tsp', perché esiste un altro programma con lo stesso nome chiamato ts (Strumento di autorizzazione orodatario (client/server)). Per le distribuzioni Linux diverse da Ubuntu/Debian, puoi eseguirlo usando il comando 'ts'.

Esegui il comando tsp:

$ tsp

Al momento, non c'è niente in coda. Aggiungiamo alcuni comandi alla coda. Per farlo, esegui:

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

Ora, esegui di nuovo il comando tsp per visualizzare i comandi nella coda:

$ tsp

Risultato di esempio:

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

Come puoi vedere nell'output sopra, ogni comando ha un ID univoco in (0, 1, 2.. ecc.) In ordine crescente. Inoltre, mostra lo stato attuale dei comandi (es. terminato o in esecuzione) nella coda. I comandi echo sono molto semplici e brevi, quindi abbiamo ottenuto il risultato come 'finito'.

Eseguiamo un comando che richiede più tempo per essere completato. Dai un'occhiata al seguente comando:

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

Questo comando troverà e visualizzerà i primi 20 file più vecchi nel file system radice (/).

Ora aggiungi il comando sopra alla coda:

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

Risultato di esempio:

2

Ora, esegui il comando tsp per visualizzare l'elenco dei comandi nella coda.

$ tsp

Risultato di esempio:

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

Aggiungi comandi Linux alla coda utilizzando Task Spooler

Come puoi vedere nell'output sopra, il comando con ID 2 è in esecuzione. Allo stesso modo, puoi aggiungere tutti i comandi che desideri eseguire utilizzando Task Spooler.

Aggiornamento:

Come uno dei nostri lettori ha menzionato nella sezione commenti, il comando trova dovrebbe essere eseguito come di seguito:

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

Per visualizzare l'output di un lavoro in esecuzione per verificare cosa sta succedendo, immetti il ​​seguente comando:

$ tsp -c 2

Qui, 2 è l'ID del comando in esecuzione. Premi CTRL+C per tornare al Terminal. Non annullerà il comando in esecuzione. Ti riporterà solo al Terminale. Il lavoro verrà comunque eseguito in background.

Puoi rimuovere un comando (in esecuzione, terminato, in coda) dalla coda utilizzando -r flag seguito dall'ID come di seguito.

$ tsp -r 2

Il comando precedente rimuoverà il comando con ID 2 dalla coda.

Per cancellare tutti i comandi dalla coda, esegui semplicemente:

$ tsp -C

Tieni presente che qui C è capitale . Il comando precedente cancellerà gli ultimi comandi completati dalla coda. Non rimuoverà alcun comando in esecuzione o comandi nella coda.

Ricorda, devi eseguire Task Spooler in distribuzioni diverse da Debian/Ubuntu usando ts comando.

Per maggiori dettagli, fare riferimento alle pagine man.

$ man ts

Oppure,

$ man tsp

Lettura consigliata:

  • Come eseguire un comando per un periodo di tempo specifico in Linux

Conclusione

Lo trovo Task spooler molto utile quando devo eseguire più comandi. Sono solo un pigro che aspetta che un comando finisca ed esegua l'altro. Usando lo spooler di attività, ho messo in coda l'elenco dei comandi da eseguire e ha eseguito i comandi dalla coda uno per uno in ordine crescente. Posso anche visualizzare l'output di qualsiasi comando in esecuzione utilizzando il suo ID in qualsiasi momento. Tieni presente che non eseguirà tutti i comandi contemporaneamente. Invece, eseguirà i comandi uno dopo l'altro. Detto questo, Task Spooler è optato per l'esecuzione di lavori batch.


Linux
  1. Controlla i comandi e le attività con il comando watch di Linux

  2. Come usare il comando Linux grep

  3. Come usare il comando cronologia in Linux

  4. Come creare un alias e utilizzare il comando alias in Linux

  5. Come comprimere ed estrarre file usando il comando tar su Linux?

Come eseguire automaticamente script e comandi di avvio di Linux

Come eseguire più comandi Linux in un unico comando

I 40 comandi utili del server Linux per principianti e professionisti

Come utilizzare il comando superiore come Task Manager in Linux

Come installare e utilizzare il comando Ack in Linux

Linux perf:come utilizzare il comando e il profiler