Cron è un servizio di pianificazione dei lavori basato sul tempo presente nei sistemi operativi simili a Unix. Gli utenti pianificano i lavori (comandi o script) da eseguire periodicamente a orari, date o intervalli fissi.
L'origine e la storia antica di Cron
La prima implementazione di cron risale alla versione 7 Unix. Il termine “cron” deriva dalla parola greca che significa tempo, “chronos”. Questa versione di Unix, rilasciata nel 1979, aveva un semplice programma cron che eseguiva attività a intervalli specificati. Le funzionalità di Cron furono successivamente ampliate da Paul Vixie nel 1987. Questa versione, conosciuta come Vixie Cron, è la versione più comunemente installata oggi, ed è la versione a cui generalmente ci si riferisce quando le persone menzionano “Cron”.
Espansione del concetto di Cron
Cron consente agli utenti di automatizzare la manutenzione o l'amministrazione del sistema, sebbene la sua natura generica lo renda utile per operazioni come il download di file da Internet e il download di posta elettronica a intervalli regolari. Un ambiente cron è come una sandbox in cui i processi cron vengono eseguiti dal normale ambiente shell.
Ogni utente può avere il proprio crontab e, sebbene questi siano file in /var/spool/, non sono destinati a essere modificati direttamente. La sintassi delle espressioni cron può essere suddivisa in due tipi principali di sintassi: sintassi cron Unix e una sintassi più complessa nota come sintassi dell'espressione cron o sintassi cron quarzo.
La struttura interna di Cron e come funziona
Cron funziona sulla base di un file di configurazione semplice ma potente noto come file "crontab". Questo file contiene una riga per ogni attività da eseguire, composta da cinque campi di data e ora, seguiti da un comando da eseguire a orari specificati.
I cinque campi rappresentano:
- Minuti dopo l'ora (0 – 59)
- Ore in un giorno (0 – 23)
- Giorni in un mese (1 – 31)
- Mesi dell'anno (1 – 12)
- Giorni della settimana (0 – 7, dove 0 e 7 sono domenica)
Il campo comando contiene l'attività da eseguire agli orari specificati nei primi cinque campi.
Caratteristiche principali di Cron
Le caratteristiche principali di Cron includono:
- Consente l'esecuzione automatica delle attività in background a intervalli regolari.
- Fornisce una piattaforma flessibile per pianificare attività (script o comandi) con una varietà di unità di tempo.
- Ogni utente può avere il proprio file crontab.
- È possibile pianificare l'esecuzione dei processi Cron in base al minuto, all'ora, al giorno della settimana, al giorno del mese e al mese dell'anno.
- Cron fornisce un modo semplice ed efficace per automatizzare varie attività di sistema.
Tipi di cron
I lavori Cron possono essere generalmente classificati come segue:
Tipo | Descrizione |
---|---|
Riavviare | Viene eseguito una volta all'avvio. |
Anacron | Viene eseguito a intervalli specificati in giorni. |
Cronologia sistema | Memorizzati in /etc/crontab e nella directory /etc/cron.d/, questi sono destinati a essere a livello di sistema. |
Cronometro utente | Ogni utente può averne di propri e questi vengono archiviati in /var/spool/cron/crontabs/. |
Utilizzo di Cron, problemi e relative soluzioni
Cron è utile per automatizzare le attività, ma può causare problemi se non utilizzato con attenzione. Ad esempio, un processo cron configurato in modo errato può portare a un utilizzo elevato della CPU. Inoltre, cron invia tramite e-mail l'output dei suoi lavori, se presenti, solo all'utente con cui esegue i lavori. Ciò potrebbe causare errori mancati se non controllato regolarmente.
Le soluzioni comuni a questi problemi includono:
- Controllare regolarmente l'utilizzo elevato della CPU e riconfigurare o interrompere i lavori non necessari.
- Assicurarsi che tutti i comandi e gli script vengano eseguiti correttamente prima di impostarli come processi cron.
- Reindirizzare l'output a un file di registro o configurare un server di posta per monitorare i processi cron in modo più efficace.
Confronti con strumenti simili
Esistono altri pianificatori di attività simili a cron, come i timer anacron e systemd. Le differenze principali tra questi possono essere riassunte come:
Attrezzo | Descrizione |
---|---|
Cron | Adatto per attività da svolgere in orari specifici della giornata. Non esegue i lavori persi. |
Anacron | Adatto per attività da eseguire una volta al giorno/settimanale/mensile. Eseguirà i lavori persi quando la macchina sarà di nuovo online. |
Systemd | Adatto a scenari più complessi in quanto offre più opzioni e si integra bene con le moderne distribuzioni Linux. |
Prospettive future e tecnologie correlate
Poiché i sistemi basati su Unix continuano ad evolversi, anche Cron fa lo stesso. Nonostante l'emergere di pianificatori di attività più avanzati come systemd, la semplicità e la potenza di Cron assicurano che rimanga di uso comune anche oggi.
La recente tendenza verso applicazioni containerizzate e architetture di microservizi ha portato anche a nuovi modi di utilizzare Cron. Ad esempio, Kubernetes, una popolare piattaforma di orchestrazione dei container, ha una funzionalità nota come CronJobs che è simile a Cron nei sistemi basati su Unix.
Server proxy e Cron
I server proxy possono essere utilizzati efficacemente in combinazione con Cron per automatizzare determinate attività. Ad esempio, se disponi di uno script che deve accedere regolarmente a un sito Web o a un'API tramite un server proxy, potresti impostare un processo cron per eseguire lo script a intervalli specificati.
Cron potrebbe anche essere utilizzato per ruotare i proxy a intervalli specifici, riducendo la possibilità che un singolo proxy venga bloccato. Ad esempio, i servizi proxy di OneProxy possono essere automatizzati con Cron per attività come lo scraping dei dati, l'automazione delle attività sui social media e altro ancora.
Link correlati
Per ulteriori informazioni su Cron, prendere in considerazione le seguenti risorse: