I computer sono bravi nell'automazione, ma non tutti sanno come far funzionare l'automazione. È un vero lusso, tuttavia, essere in grado di pianificare un'attività per un computer in un momento specifico e poi dimenticarsene. Forse hai un file da caricare o scaricare in un momento specifico, o devi elaborare un batch di file che non esistono ancora ma di cui è garantita l'esistenza entro un certo tempo o un'impostazione che deve essere monitorata, o forse hai solo bisogno un amichevole promemoria per prendere pane e burro mentre torni a casa dal lavoro.
Questo è ciò che il at
il comando è per.
Che cos'è Linux at command?
Il at
comando è il metodo del terminale Linux che consente di pianificare lavori una tantum per un'ora e una data specifiche. È un'automazione spontanea resa facile dal terminale.
Installazione in
Su Linux, il at
il comando è probabilmente già installato. Puoi verificare che sia installato usando il at -V
comando. Finché viene restituita una versione, hai at
installato:
$ at -V
at version x.y.z
Dovresti provare a usare at
e il comando non viene trovato, la maggior parte delle moderne distribuzioni Linux offre di installare il at
mancante pacchetto per te.
Potrebbe anche essere necessario avviare il demone at, chiamato atd
. Sulla maggior parte dei sistemi Linux, usi il comando systemctl per abilitare i servizi e impostarli per l'avvio automatico d'ora in poi:
$ sudo systemctl enable --now atd
Programmazione interattiva di un lavoro con at
Quando usi il at
comando insieme all'ora in cui desideri eseguire un'attività, apri un at
interattivo richiesta. Puoi inserire i comandi che desideri eseguire all'ora specificata.
Se può essere d'aiuto, puoi pensare a questo processo come a un'app di calendario, come quella che probabilmente usi sul tuo cellulare:prima crei un evento in un giorno alla volta, quindi specifichi cosa vuoi che accada.
Ad esempio, prova a programmare un promemoria per te stesso creando un'attività per alcuni minuti in futuro. Semplifica il compito per ridurre la probabilità di fallimento. Per uscire da at
prompt, premi Ctrl+D sulla tastiera.
$ at 11:20 AM
warning: commands will be executed using /bin/sh
at> echo "hello world" > ~/at-test.txt
at> <EOT>
job 3 at Mon Jul 26 11:20:00 2021
Come puoi vedere, at
utilizza definizioni di tempo intuitive e naturali. Non è necessario conoscere l'orologio delle 24 ore o tradurre gli orari in UTC o in un formato ISO specifico. In genere, puoi usare qualsiasi notazione ti viene naturale, ad esempio mezzogiorno , 13:30 , 13:37 , e così via, per descrivere quando vuoi che venga eseguita un'attività.
Attendi qualche minuto e poi verifica che l'attività sia stata eseguita eseguendo cat
o il tac
comando sul file che hai creato:
$ cat ~/at-test.txt
hello world
Programmazione di un lavoro con a
Non è necessario utilizzare il prompt interattivo per pianificare i lavori con at
. Puoi invece inviare comandi ad esso usando echo
o printf
. In questo esempio, utilizzo la notazione ora e tra quanti minuti voglio che l'attività venga ritardata:
$ echo "echo 'hello again' >> ~/at-test.txt" | at now +1 minute
Dopo un minuto, verifica che il nuovo comando sia stato eseguito:
$ cat ~/at-test.txt
hello world
hello again
Più risorse Linux
- Comandi Linux cheat sheet
- Cheat sheet sui comandi avanzati di Linux
- Corso online gratuito:Panoramica tecnica RHEL
- Cheat sheet della rete Linux
- Cheat sheet di SELinux
- Cheat sheet dei comandi comuni di Linux
- Cosa sono i container Linux?
- I nostri ultimi articoli su Linux
Espressioni temporali
Il at
il comando è abbastanza clemente quando interpreta i tempi. Puoi scegliere tra tanti formati, a seconda di quello che ti è più comodo:
YYMMDDhhmm
[.ss]
(anno, mese, giorno, ora, minuti e, facoltativamente, secondi abbreviati)CCYYMMDDhhmm
[.ss]
(anno intero, mese, giorno, ora, minuti e, facoltativamente, secondi)now
midnight
noon
teatime
(16:00)AM
PM
Orari e date possono essere assoluti o aggiungere un segno più (+ ) per renderli relativi a adesso . Quando specifichi tempi relativi, puoi usare parole che probabilmente usi già:
minutes
hours
days
weeks
months
years
Sintassi di ora e data
Il at
il comando è meno clemente nel distinguere i tempi dalle date. L'ora deve arrivare prima, seguita dal giorno, anche se il giorno è predefinito per il giorno corrente ed è richiesto solo quando si pianifica un'attività per un giorno in futuro.
Questi sono solo alcuni esempi di espressioni valide:
$ echo "rsync -av /home/tux me@myserver:/home/tux/" | at 3:30 AM tomorrow
$ echo "/opt/batch.sh ~/Pictures" | at 3:30 AM 08/01/2022
$ echo "echo hello" | at now + 3 days
Visualizzazione in coda
Dopo aver abbracciato at
e stai pianificando attività invece di scarabocchiare appunti su pezzi di carta che giacciono intorno alla scrivania, potresti voler controllare se hai ancora lavori in coda.
Per visualizzare il tuo at
coda, usa atq
comando:
$ atq
10 Thu Jul 29 12:19:00 2021 a tux
9 Tue Jul 27 03:30:00 2021 a tux
7 Tue Jul 27 00:00:00 2021 a tux
Per rimuovere un'attività dalla coda, usa atrm
comando insieme al numero del lavoro. Per rimuovere il lavoro 7, ad esempio:
$ atrm 7
$ atq
10 Thu Jul 29 12:19:00 2021 a tux
9 Tue Jul 27 03:30:00 2021 a tux
Per vedere cosa c'è effettivamente in un lavoro pianificato, devi guardare il at
bobina. Solo l'utente root può visualizzare il at
spool, quindi devi usare sudo
per visualizzare lo spool o per cat
il contenuto di qualsiasi lavoro.
Programma con Linux a
Il at
è un ottimo modo per evitare di dimenticare di eseguire un lavoro nel corso della giornata o di fare in modo che il computer esegua un lavoro per te quando non ci sei. A differenza di cron
, è libero dall'aspettativa che un lavoro debba essere eseguito su una pianificazione regolare da ora fino all'eternità e la sua sintassi è di conseguenza molto più semplice del cron
sintassi.
La prossima volta che hai un piccolo lavoro che vuoi che il tuo computer ricordi e gestisca, prova il at
comando.