Come utilizzare at e batch su Linux per pianificare i comandi

Una finestra di terminale su un sistema Linux.

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 pubblicitario

Per 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:

    Corse alle 11:00:
    • at
    Domani alle 11:00:
    • at
    Corri alle 11:00 di questo giorno della prossima settimana:
    • at
    Esegui a quest'ora, in questo giorno, la prossima settimana:
    • at
    In programma alle 11:00 di venerdì prossimo:
    • now
    Esegui a quest'ora il prossimo venerdì:
    • at
    Corri alle 11:00 in questa data, il mese prossimo:
    • at
    Corri alle 11:00 in una data specifica:
    • at
    Esegui 30 minuti da ora:
    • sh
    Esegui tra due ore:
    • sh
    Domani a quest'ora:
    • sh
    Giovedì a quest'ora:
    • sh
    Corri alle 12:00:
    • sh
    Corse alle 12:00:
    • sh
    Se sei un inglese, puoi anche programmare un comando da eseguire all'ora del tè (16:00):
    • $

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:

    ID lavoro Data programmata Orario pianificato Metti in coda il lavoro. Le code sono etichettate a, b e così via. Attività normali che pianifichi con |_+_| vai in coda a, mentre le attività che pianifichi con |_+_| (trattato più avanti in questo articolo) andare in coda b. La persona che ha programmato il lavoro.

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:

    Prima linea:Questo ci dice che i comandi verranno eseguiti sotto |_+_| conchiglia. Seconda linea:Vediamo che i comandi verranno eseguiti con un ID utente e di gruppo pari a 1000. Questi sono i valori per la persona che ha eseguito |_+_| comando. Terza riga:La persona che riceve le email |_+_|invia. Quarta riga:Il Maschera utente è 22. Questa è la maschera utilizzata per impostare i permessi predefiniti per qualsiasi file creato in questo |_+_| sessione. La maschera viene sottratta da 666, che ci dà 644 (l'equivalente ottale di |_+_|). Dati rimanenti:La maggior parte sono variabili d'ambiente.

    Risultati di un test.Un test verifica che sia possibile accedere alla directory di esecuzione. In caso contrario, viene generato un errore e l'esecuzione del lavoro viene interrotta. I comandi da eseguire.Questi vengono elencati e viene visualizzato il contenuto degli script pianificati. Nota che sebbene lo script nel nostro esempio sopra sia stato scritto per essere eseguito in Bash, verrà comunque eseguito in un |_+_| conchiglia.

Il comando batch

Il |_+_| comando funziona allo stesso modo al |_+_| comando, ma con tre differenze significative:

  1. Puoi usare solo il |_+_| comando in modo interattivo.
  2. 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.
  3. A causa di quanto sopra, non si specifica mai una data e un'ora con |_+_| comando.

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:

  • |_+_|: 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.
Annuncio pubblicitario

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:

  • 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 |_+_|.
Comandi Linux
File catrame · pv · gatto · tac · chmod · presa · differenza · sed · Con · uomo · spinto · popd · fsck · testdisk · seguito · fd · pandoc · cd · $PATH · awk · giuntura · jq · piega · unico · journalctl · coda · stato · ls · fstab · buttato fuori · meno · chgrp · chown · rev · Guarda · stringhe · genere · rinominare · cerniera lampo · decomprimere · montare · smontare · installare · fdisk · mkfs · rm · rmdir · rsync · df · gpg · noi · nano · mkdir · a partire dal · ln · toppa · convertire · rclone · brandello · SRM
Processi alias · schermo · superiore · Bello · renice · progresso · strace · sistema · tmux · chsh · storia · in · lotto · libero · quale · dmesg · usermod · ps · chroot · xargs · tty · mignolo · lsof · vmstat · tempo scaduto · parete · · uccisione · dormire · sudo · il suo · volta · gruppoaggiungi · usermod · gruppi · lshw · spegnimento · riavviare · fermare · spegni · passwd · lscpu · crontab · Data · bg · fg
Rete netstat · ping · traceroute · ip · ss · chi è · fail2ban · bmon · voi · dito · nmap · ftp · arricciare · wget · chi · chi sono · In · iptables · ssh-keygen · ufw

IMPARENTATO: I migliori laptop Linux per sviluppatori e appassionati

LEGGI SUCCESSIVO
  • › 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
Foto del profilo di Dave McKay Dave McKay
Dave 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

Articoli Interessanti