GNU/Linux >> Linux Esercitazione >  >> Linux

Suggerimenti Linux per l'utilizzo di cron per pianificare le attività

Sui computer è importante fare in modo che le cose accadano secondo un programma regolare e prevedibile. È importante perché, come esseri umani, a volte possiamo essere cattivi nel ricordare di fare le cose in modo affidabile perché ci distraiamo, abbiamo troppe cose per la testa o siamo in vacanza. I computer sono davvero bravi a fare le cose in base a un programma, ma un essere umano deve programmare il computer prima che il computer agisca.

In un certo senso, il cron system è un'introduzione semplice e rudimentale alla programmazione. Puoi fare in modo che il tuo computer faccia ciò che desideri semplicemente modificando un file. Non devi nemmeno sapere dove è conservato il file. Devi solo digitare un semplice comando, inserire la "ricetta" che vuoi che il tuo computer segua e salvare il tuo lavoro. Da quel momento in poi, il tuo computer esegue le tue istruzioni all'ora specificata fino a quando non gli viene detto di fermarsi.

In base alla progettazione, cron non è un sistema complesso Ecco cosa devi sapere a riguardo.

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

Cos'è cron?

Il cron comando è così onnipresente in Linux e Unix, ed è stato imitato e reinventato così spesso che è quasi un termine generico per qualcosa che accade in base a una pianificazione . È una forma di automazione e, sebbene ne esistano diverse implementazioni (cron di Dillon, cron di Vixie, crony e altri) e varianti come anacron e i timer di sistema, la sintassi e il flusso di lavoro sono rimasti sostanzialmente gli stessi per decenni.

Cron funziona su un sistema di "spool", proprio come stampanti ed e-mail. Se non sapevi che le stampanti e le e-mail utilizzano uno spool, va bene perché il punto di un file di spool è che non dovresti pensarci molto. Su un sistema Linux, la directory /var/spool è progettato come hub centrale per file importanti ma di basso livello con cui l'utente non deve interagire direttamente. Uno degli spool gestiti in /var/spool è cron tabelle o "crontab" in breve. Ogni utente, compreso te stesso, su un sistema Linux ha un crontab. Gli utenti possono modificare, visualizzare e rimuovere il proprio crontab. Inoltre, gli utenti possono utilizzare il proprio crontab per pianificare le attività. Il cron il sistema stesso monitora crontab e garantisce che qualsiasi lavoro elencato in un crontab venga eseguito all'ora specificata.

Modifica impostazioni cron

Puoi modificare il tuo crontab usando il crontab comando insieme al -e (per modifica ) opzione. Per impostazione predefinita, la maggior parte dei sistemi invoca vim editor di testo. Se tu, come me, non usi Vim, puoi impostare un editor diverso per te stesso nel tuo ~/.bashrc file. Ho impostato il mio su Emacs, ma potresti anche provare Nano, Kate o qualunque sia il tuo editor preferito. L'EDITOR La variabile d'ambiente definisce quale editor di testo usi nel tuo terminale, mentre il VISUAL variabile definisce quale editor usi in modalità grafica:

export EDITOR=nano
export VISUAL=kate

Aggiorna la sessione della shell con le nuove impostazioni:

$ source ~/.bashrc

Ora puoi modificare il tuo crontab con il tuo editor preferito:

$ crontab -e

Programma un'attività

Il cron il sistema è essenzialmente un sistema di calendario. Puoi dire a cron la frequenza con cui si desidera eseguire un processo utilizzando cinque diversi attributi:minuto, ora, data, mese, giorno della settimana. L'ordine di questi attributi è rigoroso e non necessariamente intuitivo, ma puoi pensarli come filtri o maschere. Per impostazione predefinita, potresti pensare che tutto sia impostato su sempre o ogni . Questa voce eseguirà touch /tmp/hello all'inizio di ogni minuto durante ogni ora di ogni giorno tutto l'anno:

* * * * * touch /tmp/hello

È possibile limitare questa pianificazione onnicomprensiva impostando definizioni specifiche per ciascun attributo. Per eseguire il lavoro in base alla mezz'ora di ogni ora, imposta i minuti su 30 :

30 * * * * touch /tmp/hello

È possibile vincolare ulteriormente questa istruzione con un'ora specifica. Questo lavoro viene eseguito ogni mattina alle 3:30:

30 3 * * * touch /tmp/hello

Puoi anche far eseguire il lavoro solo il primo di ogni mese:

30 3 1 * * touch /tmp/hello

Puoi impostare un mese usando 1 per gennaio fino a 12 per dicembre e puoi impostare un giorno usando 0 per domenica fino a 6 per sabato. Questo lavoro viene eseguito alle 3:15 durante il mese di aprile, solo il lunedì:

15 3 * 4 1 touch /tmp/hello

Imposta incrementi

Tutte queste impostazioni corrispondono a un valore esattamente . Puoi anche usare cron notazione per eseguire lavori dopo un determinato periodo di tempo. Ad esempio, puoi eseguire un lavoro ogni 15 minuti:

*/15 * * * * touch /tmp/hello

Potresti eseguire un lavoro alle 10:00 ogni tre giorni:

* 10 */3 * * touch /tmp/hello

Potresti eseguire un lavoro ogni sei ore:

* */6 * * * touch /tmp/hello

Stenografia Cron

cron moderno le implementazioni hanno aggiunto una comoda scorciatoia per le pianificazioni comuni. Questi sono:

  • @hourly
  • @daily
  • @weekly
  • @monthly
  • @yearly or @annually

Elenca i lavori cron

Usando il crontab comando, puoi vedere un elenco dei tuoi cron programmati lavori:

$ crontab -l
15 3 * 4 1 touch /tmp/hello

Rimuovi un crontab

Quando hai finito con un crontab, puoi rimuoverlo con il -r opzione:

$ crontab -r -i

Il -i opzione sta per interattivo . Ti chiede conferma prima di eliminare il file.

Cosa può fare cron

Una cosa è sapere come usare cron , ma è un'altra cosa sapere per cosa usarlo. Il caso d'uso classico è un buon piano di backup. Se il tuo computer è acceso per la maggior parte del giorno o tutto il giorno e tutta la notte, puoi pianificare un backup di routine di una partizione importante. Eseguo un'applicazione di backup chiamata rdiff-backup sulla mia partizione dati primaria ogni giorno alle 3 del mattino:

$ crontab -l | grep rdiff
* 3 * * * rdiff-backup /data/ /vault/

Un altro uso comune è la manutenzione del sistema. Sul mio desktop Slackware, aggiorno il catalogo del mio repository locale ogni venerdì pomeriggio:

$ crontab -l | grep slack
* 14 * * 5 sudo slackpkg update

Potrei anche eseguire uno script Ansible alle 15:00 ogni tre giorni per riordinare la mia cartella Download:

$ crontab -l | grep ansible
* 15 */3 * * ansible-playbook /home/seth/Ansible/cleanup.yaml

Un piccolo investimento nella salute del tuo ambiente informatico fa molto. Ci sono script di deduplicazione, dimensione del file e /tmp monitor di directory, ridimensionatori di foto, sposta file e molte altre attività umili che potresti pianificare per l'esecuzione in background per mantenere il tuo sistema ordinato. Con cron , il tuo computer può prendersi cura di se stesso in modi che vorrei solo il mio appartamento fisico.

Ricorda le impostazioni di cron

Oltre a trovare perché hai bisogno di cron , la cosa più difficile di cron nella mia esperienza è stato ricordare la sua sintassi. Ripeti questo a te stesso, ancora e ancora fino a quando non lo hai memorizzato:

Minuti, ore, data, mese, giorno della settimana.

Minuti, ore, data, mese, giorno della settimana.

Minuti, ore, data, mese, giorno della settimana.

Meglio ancora, scarica il nostro cheatsheet gratuito in modo da avere la chiave a portata di mano quando ne hai più bisogno!


Linux
  1. 3 consigli per la stampa con Linux

  2. Suggerimenti Linux per l'utilizzo di GNU Screen

  3. 8 suggerimenti per la riga di comando di Linux

  4. Come impostare le attività di automazione su un VPS Linux utilizzando Cron?

  5. RHEL 7 – RHCSA Note:pianifica le attività utilizzando at e cron

Suggerimenti per l'utilizzo del comando top in Linux

Come automatizzare le attività in Linux usando Crontab

Suggerimenti per l'utilizzo di tmux

Suggerimenti per l'utilizzo dello schermo

Come pianificare un'attività in Plesk per Linux

Pianifica i lavori in Linux con il comando 'at'