Come utilizzare at e batch su Linux per pianificare i comandi
Fatmawati Achmad Zaenuri/Shutterstock
Se vuoi pianificare un lavoro Linux che avverrà solo una volta, |_+_| è eccessivo. Il |_+_| la famiglia di comandi è ciò di cui hai bisogno! E se vuoi eseguire processi solo quando il tuo sistema ha risorse libere, puoi usare |_+_|.
Come pianificare i lavori Linux
Il |_+_| demone mantiene un elenco di lavori eseguiti in momenti specifici . Queste attività e programmi vengono eseguiti in background agli orari pianificati. Ciò offre una grande flessibilità per la pianificazione delle attività che devono essere ripetute. Sia che tu debba eseguire un'attività una volta ogni ora, a un'ora specifica ogni giorno o una volta al mese o all'anno, puoi impostarla in |_+_|.
Tuttavia, questo non aiuta se si desidera pianificare un'attività da eseguire solo una volta. Certo che puoi configuralo in |_+_| , ma poi devi ricordarti di tornare indietro e rimuovere il voce crontab dopo l'esecuzione dell'attività, il che è scomodo.
Con Linux, se stai lottando con un problema, è quasi una garanzia che anche qualcun altro abbia lottato con esso. Fortunatamente, poiché i sistemi operativi simili a Unix sono in circolazione da così tanto tempo, c'è anche un'eccellente possibilità che qualcuno abbia creato una soluzione al tuo problema.
Per il problema delineato sopra, ce l'hanno, e si chiama |_+_|.
IMPARENTATO: Come pianificare le attività su Linux: un'introduzione ai file Crontab
Installazione di at Command
Abbiamo dovuto installare |_+_| su Ubuntu 18.04 e Manjaro 18.1.0 (era già installato su Fedora 31).
Per installare |_+_| su Ubuntu, usa questo comando:
cron
Annuncio pubblicitario
Al termine dell'installazione, è possibile avviare |_+_| demone con questo comando:
at
Su Manjaro installi |_+_| con questo comando:
batch
Al termine dell'installazione, digitare questo comando per avviare |_+_| demone:
cron
Su qualsiasi distribuzione, puoi digitare questo comando per assicurarti che |_+_| demone è in esecuzione:
cron
Come usare il comando at in modo interattivo
Per usare |_+_|, devi assegnargli una data e un'ora per l'esecuzione. C'è una grande flessibilità nel modo in cui puoi scriverli, che tratteremo più avanti in questo articolo.
Tuttavia, anche se useremo |_+_| in modo interattivo, è necessario fornire la data e l'ora in anticipo. Se non includi nulla nella riga di comando o digiti qualcosa che non è una data e un'ora, |_+_| risponde con Tempo ingarbugliato, come mostrato di seguito:
cron
at
Annuncio pubblicitario
Le date e gli orari possono essere espliciti o relativi. Ad esempio, supponiamo che tu voglia eseguire un comando tra un minuto. |_+_| sa cosa significa ora, quindi puoi usare |_+_| e aggiungi un minuto, in questo modo:
at
|_+_| stampa un messaggio e un |_+_| prompt e attende che tu digiti i comandi che desideri pianificare. Prima, però, considera il messaggio, come mostrato di seguito:
Ti dice |_+_| lancia un'istanza di |_+_| conchiglia e volontà esegui i comandi al suo interno . I tuoi comandi non verranno eseguiti nella shell Bash, che è compatibile con |_+_| shell ma ha un set di funzionalità più ricco.
Se i tuoi comandi o script provano a utilizzare una funzione o una struttura fornita da Bash, ma |_+_| no, falliranno.
È facile verificare se i tuoi comandi o script verranno eseguiti in |_+_|. Usa il |_+_| comando per avviare un |_+_| conchiglia:
at
Il prompt dei comandi cambia in un simbolo di dollaro (|_+_|) e ora puoi eseguire i comandi e verificare che funzionino correttamente.
Annuncio pubblicitarioPer tornare alla shell Bash, digita |_+_| comando:
at
Non vedrai alcun output standard o messaggi di errore dai comandi. Questo perché |_+_| shell si avvia come attività in background e viene eseguita senza alcun tipo di interfaccia a schermo.
Qualsiasi output dei comandi, buono o cattivo, ti viene inviato via email. Viene inviato tramite il sistema di posta interno a chi esegue |_+_| comando. Ciò significa che devi impostare e configurare quel sistema di posta interno.
Molti (la maggior parte) dei sistemi Linux non hanno un sistema di posta elettronica interno in quanto raramente ne è necessario uno. Quelli che usano in genere un sistema come inviare una mail o suffisso . Se il tuo sistema non dispone di un sistema di posta elettronica interno, puoi fare in modo che gli script scrivano su file o reindirizzino l'output ai file per aggiungere la registrazione.
Se il comando non ne genera nessuno output standard o messaggi di errore , non riceverai comunque un'email. Molti comandi di Linux indicano il successo tramite il silenzio, quindi nella maggior parte dei casi non riceverai un'e-mail.
IMPARENTATO: Cosa sono stdin, stdout e stderr su Linux?
Ora è il momento di digitare un comando in |_+_|. Per questo esempio, useremo un piccolo file di script chiamato |_+_| che elimina |_+_|, |_+_| e |_+_| File. Digitare il percorso del comando, come mostrato di seguito, quindi premere Invio.
Annuncio pubblicitario
Viene visualizzato un altro prompt dei comandi e puoi aggiungere tutti i comandi che desideri. Di solito è più conveniente avere i comandi in un singolo script e chiamare semplicemente quello script da |_+_|.
Premi Ctrl+D per dire |_+_| hai finito di aggiungere i comandi. |_+_| mostra, che significa fine della trasmissione . Ti viene detto il numero del lavoro e quando è pianificata l'esecuzione del lavoro, come mostrato di seguito:
Dopo l'esecuzione del lavoro, digitare quanto segue per controllare la posta interna:
at
Se non c'è posta, devi presumere il successo. Ovviamente, in questo caso, puoi controllare e vedere se il |_+_| , |_+_| e |_+_| i file sono stati eliminati per confermare che il comando ha funzionato.
Digita quanto segue per eseguire di nuovo l'intera operazione:
at
Dopo un minuto, digita quanto segue per ricontrollare la posta:
atd
Ehi, abbiamo la posta! Per leggere il messaggio numero uno, premi 1, quindi premi Invio.
Annuncio pubblicitario
Abbiamo ricevuto un'email da |_+_| perché i comandi nello script hanno generato messaggi di errore. In questo esempio, non c'erano file da eliminare perché quando abbiamo eseguito lo script in precedenza, li ha rimossi.
Premi D+Invio per eliminare l'e-mail e Q+Invio per uscire dal programma di posta.
Formati di data e ora
Hai molta flessibilità quando si tratta dei formati dell'ora che puoi usare con |_+_|. Ecco alcuni esempi:
at
at
at
at
now
at
at
at
sh
sh
sh
sh
sh
sh
$
- Puoi usare solo il |_+_| comando in modo interattivo.
- Invece di pianificare i lavori da eseguire in un momento specifico, li aggiungi alla coda e il |_+_| comando li esegue quando il sistema carico medio è inferiore a 1,5.
- A causa di quanto sopra, non si specifica mai una data e un'ora con |_+_| comando.
- |_+_|: Elenca le applicazioni e le entità che non possono utilizzare |_+_| per programmare i lavori.
- |_+_|: Elenchi che possono utilizzare |_+_| per programmare i lavori. Se il |_+_| il file non esiste, |_+_| usa solo |_+_| file.
- Quando hai bisogno di fare qualcosa che non è un processo normale, pianificalo con |_+_|.
- Se si desidera eseguire un'attività solo quando il carico del sistema è sufficientemente basso, utilizzare |_+_|.
- › Funzioni e formule in Microsoft Excel: qual è la differenza?
- › 5 siti Web che ogni utente Linux dovrebbe aggiungere ai segnalibri
- › Che cos'è la protezione anticaduta MIL-SPEC?
- & rsaquo; Cyber Monday 2021: le migliori offerte tecnologiche
- › La cartella del computer è 40: come la star di Xerox ha creato il desktop
- › Come trovare il tuo Spotify Wrapped 2021
Guardando la coda di lavoro
Puoi digitare |_+_| comando per vedere la coda dei lavori pianificati, come mostrato di seguito.
Per ogni comando in coda, |_+_| visualizza le seguenti informazioni:
Utilizzo di at sulla riga di comando
Non devi usare |_+_| in modo interattivo; puoi anche usarlo sul comando. Questo rende più facile l'uso all'interno degli script.
Puoi reindirizzare i comandi in |_+_|, in questo modo:
exit
Il lavoro viene accettato e pianificato da |_+_| e il numero del lavoro e la data di esecuzione vengono riportati come prima.
IMPARENTATO: Come usare le pipe su Linux
Utilizzo di at con file di comandi
Puoi anche memorizzare una sequenza di comandi in un file e poi passarla a |_+_|. Questo può essere un semplice file di comandi di testo, non deve essere uno script eseguibile.
Puoi usare il |_+_| (file) nel modo seguente per passare un nome file a |_+_|:
sh
Puoi ottenere lo stesso risultato reindirizzando il file in |_+_|:
at
Rimozione dei lavori pianificati dalla coda
Per rimuovere un lavoro pianificato dalla coda, puoi usare |_+_| comando. Se vuoi vedere prima la coda per trovare il numero del lavoro che vuoi rimuovere, puoi usare |_+_| . Quindi, usa quel numero di lavoro con |_+_|, come mostrato di seguito:
at
sweep.sh
*.bak
Come vedere una vista dettagliata dei lavori
Come accennato in precedenza, puoi programmare lavori in un lontano futuro. A volte, potresti dimenticare cosa sta per fare un lavoro. Il |_+_| Il comando ti mostra i lavori in coda, ma non quello che faranno. Se vuoi vedere una vista dettagliata di un lavoro, puoi usare il |_+_| (gatto) opzione.
Per prima cosa, useremo |_+_| per trovare il numero di lavoro:
*.tmp
Annuncio pubblicitario
Ora useremo il lavoro numero 13 con |_+_| opzione:
*.o
Ecco una ripartizione delle informazioni che otteniamo sul lavoro:
Il comando batch
Il |_+_| comando funziona allo stesso modo al |_+_| comando, ma con tre differenze significative:
Quando usi |_+_| comando, lo chiami per nome senza parametri della riga di comando in questo modo:
at
Quindi, aggiungi attività come faresti con |_+_| comando.
Controllo dell'accesso al comando at
Il |_+_| e |_+_| i file controllano chi può usare |_+_| famiglia di comandi. Questi si trovano all'interno del |_+_| directory. Per impostazione predefinita, solo |_+_| file esiste e viene creato quando |_+_| è installato.
Ecco come funzionano:
Per impostazione predefinita, chiunque può utilizzare |_+_|. Se vuoi limitare chi può usarlo, usa |_+_| file per elencare coloro che possono. È più facile che aggiungere tutti coloro che non possono usare |_+_| al |_+_| file.
Ecco cosa |_+_| il file assomiglia a:
at
Il file elenca i componenti del sistema operativo che non possono utilizzare |_+_|. Molti di questi non possono farlo per motivi di sicurezza, quindi non vuoi rimuoverne nessuno dal file.
Ora modificheremo il |_+_| file. Stiamo per aggiungere |_+_| e |_+_|, ma nessun altro potrà usare |_+_|.
Innanzitutto, digitiamo quanto segue:
at
Nell'editor, aggiungiamo i due nomi, come mostrato di seguito, e quindi salviamo il file.
Se qualcun altro prova a usare |_+_|, gli verrà detto che non ha il permesso. Ad esempio, supponiamo che un utente si chiami |_+_| digita quanto segue:
*.bak
Sarebbe stato rifiutato, come mostrato di seguito.
Annuncio pubblicitario
Ancora una volta, |_+_| non è nel |_+_| file. Non appena metti qualcuno nel |_+_| file, a chiunque ea tutti gli altri viene negato il permesso di usare |_+_|.
Ottimo per una tantum
Come puoi vedere, entrambi |_+_| e |_+_| sono ideali per le attività che devi eseguire solo una volta. Ancora una volta, come una rapida recensione:
IMPARENTATO: I migliori laptop Linux per sviluppatori e appassionati
LEGGI SUCCESSIVODave McKay ha usato per la prima volta i computer quando era in voga il nastro di carta perforata, e da allora ha programmato. Dopo oltre 30 anni nel settore IT, ora è un giornalista tecnologico a tempo pieno. Durante la sua carriera ha lavorato come programmatore freelance, manager di un team internazionale di sviluppo software, project manager di servizi IT e, più recentemente, come Data Protection Officer. I suoi scritti sono stati pubblicati da howtogeek.com, cloudavvyit.com, itenterpriser.com e opensource.com. Dave è un evangelista di Linux e un sostenitore dell'open source.
Leggi la biografia completa