GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come utilizzare Linux a comando

Introduzione

Il at command è un'utilità della riga di comando di Linux utilizzata per pianificare un lavoro per l'esecuzione successiva. L'utilità legge i comandi dall'input standard e li raggruppa in un at job, che viene eseguito una sola volta.

L'alternativa per at è un lavoro cron. Tuttavia, mentre at i lavori vengono eseguiti solo una volta, i lavori cron sono eventi ricorrenti.

In questo tutorial imparerai a usare il at comando e vedere esempi utili per la pianificazione dei comandi.

Prerequisiti

  • Un sistema che esegue Linux.
  • Un account utente con privilegi sudo.

Installa il comando at

A seconda della distribuzione Linux in uso, il at il comando potrebbe non essere preinstallato.

Controlla se at viene installato inserendo il nome del comando nel terminale:

Se l'utilità non è preinstallata, il messaggio di output indica Comando 'at' non trovato .

Installa su Ubuntu e Debian

Segui i passaggi seguenti per installare at su Ubuntu o Debian:

1. Aggiorna il repository del pacchetto:

sudo apt update

2. Installa il at comando eseguendo:

sudo apt install at

Installa su CentOS e Fedora

Segui i passaggi seguenti per installare at su CentOS o Fedora:

1. Aggiorna il repository del pacchetto:

sudo yum -y update

2. Esegui il comando seguente per installare at :

sudo yum install at

Abilita il demone di pianificazione

Il demone di pianificazione viene eseguito in background ed esegue i lavori pianificati in tempo.

Esegui il comando seguente dopo aver installato at pacchetto per abilitare il atd scheduling daemon e impostarlo per l'avvio all'avvio del sistema.

sudo systemctl enable --now atd

Linux con la sintassi dei comandi e le opzioni

La sintassi per at il comando è:

at [option] runtime

Le opzioni ti consentono di visualizzare o eliminare i lavori pianificati e personalizzare at pianificazione dei lavori di comando. Le opzioni disponibili sono:

Opzione Descrizione
-V Stampa il numero di versione del programma sullo standard output.
-q [queue] Utilizza il [queue] specificato costituito da una singola lettera, che va da at -z e A -Z . Il at coda è l'impostazione predefinita per at e il b coda è l'impostazione predefinita per batch . Le code con lettere più alte funzionano con maggiore precisione.
L'invio di un lavoro a una coda con una lettera maiuscola considera il lavoro come inviato a batch . Il batch le regole di carico medio si applicano una volta che è il momento di eseguire il lavoro. Assegnare una coda a atq fa sì che vengano visualizzati solo i lavori in sospeso in quella coda.
-m Invia un'e-mail all'utente dopo che il lavoro è stato completato, anche se non c'è stato alcun output. Richiede un indirizzo e-mail configurato per l'utente che ha pianificato il lavoro.
-f [file] Legge il lavoro dal [file] specificato anziché dall'input standard.
-b Un alias per batch . Pianifica i lavori e li esegue in un batch coda quando la media del livello di carico del sistema è inferiore a 1,5.
-l Un alias per atq . Elenca i lavori in sospeso dell'utente. Se l'utente è superutente, elenca tutti i lavori in sospeso degli utenti.
-d Un alias per atrm . Elimina i lavori pianificati, identificati dal loro numero di lavoro.
-v Mostra il tempo di esecuzione del lavoro prima della lettura del lavoro. Il formato dell'ora è Thu Feb 20 14:50:00 1997 .
-c Cattura il lavoro specificato, mostrandone il contenuto nell'output della riga di comando standard.
-t [time_arg] Programma un lavoro per il tempo specificato da [time_arg] discussione. Il formato dell'ora accettato è [[CC]YY]MMDDhhmm .

[runtime] Espressioni temporali

Pianifica un lavoro utilizzando espressioni di tempo assoluto o espressioni di tempo relative all'ora di impostazione del lavoro.

Le espressioni temporali assolute disponibili sono:

  • YYMMDDhhmm[.ss] . Specifica un anno, un mese, un giorno, un'ora, un minuto e, facoltativamente, secondi abbreviati.
  • CCYYMMDDhhmm[.ss] . Specifica un anno intero, un mese, un giorno, un'ora, un minuto e, facoltativamente, secondi.
  • now . Indica il giorno e l'ora correnti e l'esecuzione immediata.
  • midnight . Indica le 00:00.
  • noon . Indicano le 12:00.
  • teatime . Interpretato come 16:00.
  • AM . Indica l'ora prima delle 12:00.
  • PM . Indica l'ora dopo le 12:00.
  • today . Il giorno corrente.
  • tomorrow . Il giorno dopo il giorno corrente.

Ad esempio, il comando seguente pianifica una chiamata del comando echo alle 17:00:

echo "hello" | at 5PM

Specifica un'espressione relativa del tempo aggiungendo un segno più (+ ), l'importo e uno dei seguenti:

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

Utilizzo di espressioni temporali come tomorrow o tuesday , pianifica i lavori in quei giorni all'ora corrente. Specificare ulteriormente l'ora utilizzando il + carattere.

Ad esempio, il comando seguente pianifica un echo richiamo del comando cinque minuti dopo la pianificazione del lavoro:

echo "hello" | at now +5 minutes

Ambiente

Il SHELL il valore della variabile di ambiente determina quale shell (bash, zsh, ecc.) è at comando utilizza per eseguire il lavoro. Durante la pianificazione del lavoro, il comando avverte l'utente quale shell utilizzerà durante l'esecuzione.

Linux in esempi di comandi

La sezione seguente mostra utili at esempi di comandi.

Programma un lavoro in modo interattivo

Il at Il comando consente di pianificare un lavoro utilizzando il at interattivo richiesta. Apri il prompt interattivo utilizzando la seguente sintassi:

at [runtime]

Il prompt interattivo consente di immettere quali comandi eseguire all'ora specificata. Il comando stampa anche un avviso che indica quale shell verrà utilizzata dal comando.

Esci dal prompt interattivo e salva il lavoro pianificato premendo Ctrl + D . Annulla il lavoro con Ctrl + C .

Ad esempio:

Nell'esempio sopra, abbiamo pianificato un lavoro per le 17:00, che apre il prompt interattivo. Il lavoro pianificato consiste nell'esecuzione di echo comando e l'utilità utilizza la shell bash standard.

Invia un lavoro a a

Pianifica un lavoro senza il at interattivo prompt eseguendo il pipettaggio dei comandi su at e specificando il runtime. Usa echo oppure printf per passare i comandi a at .

Ad esempio:

echo "command_to_run" | at [runtime]

Per programmare un at lavoro che invia l'echo output del comando in un file, utilizzare:

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

Usa il comando cat per verificare se il file esiste per assicurarti che il lavoro sia stato eseguito:

cat example.txt

Visualizza un lavoro pianificato

Il -c l'opzione visualizza il contenuto di un lavoro pianificato in precedenza. L'opzione è utile se dimentichi qual era il lavoro o vuoi controllare l'orario programmato.

Visualizza i contenuti di un at programmato lavoro utilizzando la seguente sintassi:

at -c [job_number]

Ottieni il numero del lavoro eseguendo atq comando prima per elencare tutti i lavori in sospeso.

Ad esempio:

Nell'esempio sopra, abbiamo prima richiesto un elenco di tutti i lavori in sospeso per ottenere i numeri dei lavori, quindi abbiamo mostrato il contenuto del lavoro 14 nell'output standard.

Elenca lavori pianificati

Il at l'utilità consente di rivedere quali lavori sono ancora in coda e in attesa di esecuzione. Esistono due modi per visualizzare i lavori in sospeso:

  • Esegui atq comando.
  • Utilizza il -l opzione.

Ad esempio:

at -l

L'output mostra il numero del lavoro in sospeso, la data, l'ora, l'anno e la coda per l'utente corrente. Per elencare i lavori in sospeso di tutti gli utenti, esegui il comando con sudo .

sudo atq

Nell'esempio sopra, eseguendo atq mostra i lavori in sospeso solo per l'utente corrente. Esecuzione di atq con sudo mostra i lavori in sospeso per tutti gli utenti.

Invia un'e-mail di notifica all'esecuzione

Il at l'utilità invia notifiche e-mail sui lavori completati per impostazione predefinita. Le notifiche e-mail richiedono un indirizzo e-mail funzionante configurato per il tuo account utente e il sistema deve essere in grado di inviare e-mail.

Per istruire at per inviare notifiche via email al completamento del lavoro, anche se non c'è output, specificare il -m opzione.

Ad esempio:

rm example.txt | at -m tomorrow

Il comando sopra pianifica il lavoro per l'ora corrente domani. Al termine, il at l'utilità notifica l'utente utilizzando l'indirizzo e-mail configurato per l'utente bosko .

Esegui lavori senza notifica

Per evitare di ricevere notifiche via email sui lavori completati, specifica il -M opzione durante la pianificazione di un at lavoro.

Ad esempio:

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

Nell'esempio sopra, abbiamo programmato un arresto del sistema per mezzanotte e utilizzato il -M opzione per impedire all'utilità di inviare la notifica e-mail.

Rimuovi un lavoro pianificato

Per rimuovere at programmato lavori, specifica il -r opzione o eseguire atrm comando insieme all'ID lavoro. Ottieni l'ID lavoro eseguendo atq o utilizzando il -l opzione.

Nell'esempio seguente, abbiamo rimosso il lavoro 12:

Limita utenti

Il at il pacchetto utilizza due file per limitare at e batch accesso al comando:

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

Modifica i file per consentire solo a determinati utenti di creare, rimuovere o visualizzare at in attesa lavori. I file sono un elenco di nomi utente che possono o non possono accedere al at comandi. Un carattere di nuova riga separa i nomi utente e gli spazi bianchi non sono consentiti.

Importante :Se il /etc/at.allow esiste, solo gli utenti in esso elencati possono utilizzare at o batch e il /etc/at.deny il file viene ignorato. Se il /etc/at.allow il file non esiste, gli utenti sono elencati in /etc/at.deny non sono autorizzati a utilizzare at o batch . L'utente root può sempre eseguire at comandi, indipendentemente dai file di controllo accessi.

Modifica il /etc/at.deny file con privilegi sudo per negare a un utente l'accesso a at comandi. Nell'esempio seguente, abbiamo modificato il file utilizzando l'editor vi:

sudo vi /etc/at.deny

Dopo aver aggiunto un nome utente all'elenco, eseguendo il at il comando che utilizza l'account utente limitato genera il seguente messaggio:

Esegui lavori quando il caricamento del sistema lo consente

Il batch comando (-b opzione) pianifica un at lavoro per l'esecuzione quando la media del carico del sistema scende al di sotto di 1,5. L'esecuzione di lavori quando il carico del sistema è basso impedisce il consumo di tutte le risorse di sistema e garantisce un funzionamento ottimale del sistema.

Ad esempio, il lavoro seguente viene eseguito non appena il carico del sistema scende al di sotto di 1,5:

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

Ubuntu
  1. Come usare il comando Linux grep

  2. Come usare il comando cronologia in Linux

  3. Come utilizzare il comando Apt-Get in Linux

  4. Come utilizzare il comando id in Linux

  5. Come utilizzare il comando "schermo" in Linux

Come utilizzare il comando fd sul sistema Linux

Come utilizzare il comando Jobs in Linux

Come utilizzare il comando wget in Linux?

Come usare il comando xargs in Linux?

Come utilizzare il comando RPM in Linux

Come utilizzare il comando which in Linux