GNU/Linux >> Linux Esercitazione >  >> Linux

Al comando in Linux

at è un'utilità della riga di comando che consente di pianificare i comandi da eseguire in un determinato momento. Lavori creati con at vengono eseguiti una sola volta.

In questo articolo spiegheremo come usare at e le sue utilità associate batch , atq , atrm per visualizzare, eliminare e creare lavori da eseguire in un secondo momento.

Installazione di at #

A seconda della distribuzione, at potrebbe essere presente o meno sul tuo sistema Linux.

Se at non è installato, puoi installarlo facilmente usando il gestore di pacchetti della tua distribuzione.

  • Installa at su Ubuntu e Debian

    sudo apt update sudo apt install at
  • Installa at su CentOS e Fedora

    sudo yum install at

Una volta installato il programma, assicurati di atd , il demone di pianificazione è in esecuzione e impostato per l'avvio all'avvio:

sudo systemctl enable --now atd

Come utilizzare il at Comando #

La sintassi semplificata per at il comando è il seguente:

at [OPTION...] runtime

Il at il comando prende la data e l'ora (runtime ) quando si desidera eseguire il lavoro come parametro della riga di comando e il comando da eseguire dallo standard input.

Creiamo un lavoro che verrà eseguito alle 9:00:

at 09:00

Dopo aver premuto Enter , ti verrà presentato il at prompt dei comandi che il più delle volte inizia con at> . Viene visualizzato anche un avviso che indica la shell in cui verrà eseguito il comando:

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

Inserisci uno o più comandi che vuoi eseguire:

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

Quando hai finito di inserire i comandi, premi Ctrl-D per uscire dal prompt e salvare il lavoro:

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

Il comando visualizzerà il numero del lavoro e l'ora e la data di esecuzione.

Ci sono anche altri modi per passare il comando che vuoi eseguire, oltre a inserire il comando nel at richiesta. Un modo è usare echo e invia il comando a at :

echo "command_to_be_run" | at 09:00

Un'altra opzione è usare Here document:

at 09:00 <<ENDcommand_to_be_runEND

Per leggere i comandi da un file invece dello standard input, invoca il comando con -f opzione seguita dal percorso del file. Ad esempio, per creare un lavoro che esegua lo script /home/linuxize/script.sh :

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

Per impostazione predefinita, se il comando produce output, at invierà un'e-mail con l'output all'utente una volta completato il lavoro. Richiama at con il -M opzione per sopprimere la notifica e-mail:

at 09:00 -M

Usa il -m per inviare un'e-mail anche se non c'è output:

at 09:00 -m

batch Comando #

batch o il suo alias at -b pianifica i lavori e li esegue in una coda batch quando il livello di carico del sistema lo consente. Per impostazione predefinita, i lavori vengono eseguiti quando la media del carico del sistema è inferiore a 1,5. Il valore del carico può essere specificato quando si richiama il atd demone. Se la media del carico del sistema è superiore a quella specificata, i lavori rimarranno in coda.

Per creare un lavoro con batch , passa i comandi che vuoi eseguire:

echo "command_to_be_run" | batch

Specifica del tempo di esecuzione #

Il at l'utilità accetta un'ampia gamma di specifiche temporali. È possibile specificare ora, data e incremento dall'ora corrente:

  • Tempo - Per specificare un'ora, usa il HH:MM o HHMM modulo. Per indicare un formato orario di 12 ore, usa am o pm dopo il tempo. Puoi anche usare stringhe come now , midnight , noon o teatime (16:00). Trascorso il tempo specificato, il lavoro verrà eseguito il giorno successivo.

  • Data - Il comando consente di pianificare l'esecuzione del lavoro in una determinata data. La data può essere specificata utilizzando il nome del mese seguito dal giorno e da un anno facoltativo. Puoi usare stringhe, come today , tomorrow , o nei giorni feriali. La data può essere indicata anche utilizzando il MMDD[CC]YY , MM/DD/[CC]YY , DD.MM.[CC]YY o [CC]YY-MM-DD formati.

  • Incremento - at accetta anche incrementi in now + count time-unit formato, dove count è un numero e time-unit può essere una delle seguenti stringhe:minutes , hours , days o weeks .

Ora, data e incremento possono essere combinati, ecco alcuni esempi:

  • Pianifica un lavoro per la prossima domenica a un'ora dieci minuti dopo l'ora corrente:

    at sunday +10 minutes
  • Pianifica un lavoro da eseguire alle 13:00 tra due giorni:

    at 1pm + 2 days
  • Pianifica l'esecuzione di un processo alle 12:30 del 21 ottobre 2020:

    at 12:30 102120
  • Pianifica un lavoro da eseguire tra un'ora:

    at now +1 hours

Puoi anche specificare un'ora e una data in [[CC]YY]MMDDhhmm[.ss] usando il -t opzione. Ecco un esempio:

at -t 202005111321.32

Specifica della coda n.

Per impostazione predefinita, i lavori creati con at sono programmati nella coda denominata at e lavori creati con batch sono programmati nel b coda.

Le query possono avere un nome da at a z e A a Z . Le code con lettere più basse vengono eseguite con una precisione inferiore, il che significa che hanno la priorità su quelle con lettere più alte.

Puoi specificare la coda con -q opzione. Ad esempio, per impostare un lavoro in L coda, eseguiresti:

at monday +2 hours -q L

Elenco dei lavori in sospeso #

Per elencare i lavori in sospeso dell'utente, eseguire atq o at -l comando:

atq

L'output elencherà tutti i lavori, uno per riga. Ciascuna riga include il numero del lavoro, la data, l'ora, la lettera di coda e il nome utente.

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

Quando atq viene richiamato come utente amministrativo, elencherà i lavori in sospeso di tutti gli utenti.

Rimozione lavori in sospeso #

Per rimuovere un lavoro in sospeso, richiamare atrm o at -r comando seguito dal numero del lavoro. Ad esempio, per rimuovere il lavoro con il numero nove, eseguire:

atrm 9

Utenti limitati #

Il /etc/at.deny e /etc/at.allow i file ti consentono di controllare quali utenti possono creare lavori con at o batch comando. I file sono costituiti da un elenco di nomi utente, un nome utente per riga.

Per impostazione predefinita, solo il /etc/at.deny il file esiste ed è vuoto, il che significa che tutti gli utenti possono utilizzare il at comando. Se desideri negare l'autorizzazione a un utente specifico, aggiungi il nome utente a questo file.

Se il /etc/at.allow esiste solo gli utenti che sono elencati in questo file possono usare il at comando.

Se nessuno dei file esiste, solo gli utenti con privilegi di amministratore possono utilizzare at comando.

Conclusione #

Il at utility legge i comandi dallo standard input e li esegue in un secondo momento. A differenza di crontab, i lavori creati con at vengono eseguiti una sola volta.

Per ulteriori informazioni su tutte le opzioni disponibili di at tipo di comando man at nel tuo terminale.

Se hai domande, sentiti libero di lasciare un commento.


Linux
  1. Comando ifconfig di Linux

  2. Comando Linux mv

  3. Linux du comando

  4. comando IP Linux

  5. comando cd di Linux

Comando gratuito in Linux

Comando Sudo in Linux

Individua il comando in Linux

Du comando in Linux

Comando W in Linux

Comando Df in Linux