Tra le caratteristiche dei servizi di hosting per domini internet troviamo i cron (o cron job) che sono una feature molto importante proveniente dal mondo Linux in grado di facilitare molti compiti del nostro sito e renderlo automatizzato (almeno in parte).
Il loro utilizzo è molto diffuso in CMS e servizi web di ogni genere, ed anche nella nostra offerta di hosting professionale sono disponibili per tutti i clienti a seconda del piano scelto.
Vediamo come creare un cron job con il pannello di controllo cPanel ma soprattutto cerchiamo di capire a cosa serve e come può essere utile.
Cosa sono i cron?
Come suggerisce il nome, i cron non sono altro che script o software programmabili nel tempo ovvero che possono essere eseguiti ad una determinata data e ora oppure, più comunemente, con una cadenza periodica (ad esempio ogni ora, ogni 5 minuti, 2 volte al giorno e così via).
Utilizzando un software open source come ad esempio PHPWatch potremmo impostare, mediante l’uso dei cron, il ping automatico di alcuni siti a nostra scelta, in modo da raccogliere un po’ di dati sull’uptime degli stessi. Questo ovviamente si potrebbe fare anche manualmente, ma con un certo dispendio di tempo oltre che di energie da parte nostra: per questa ragione l’uso dei cron nell’ambito dei siti internet serve, ed è giustificato, dalla necessità di automatizzare operazioni.
Esempi di cron job
Un cron in PHP può essere legato ad esempio ad un check di integrità del database oppure alla verifica che un servizio sia ancora attivo, alla pulitura degli eventuali file temporanei e così via.
Pochi sanno, in effetti, che è possibile lanciare comandi PHP anche via terminale, quindi eseguendo le istruzioni contenute nel file con estensione .PHP: a questo punto possiamo pensare ai cron come la possibilità di estendere l’esecuzione dei comandi via terminale e renderla automatica, impostandoli una volta per sempre per poi non pensarci più.
Dal pannello di controllo cPanel è possibile fare click sull’icona relativa ai cron-job (vedi immagine) che aprirà una pagina che consente di crearne uno oppure di modificare quelli esistenti.
Come primo passo possiamo inserire un indirizzo di posta elettronica, sul quale riceveremo, almeno all’inizio, le notifiche sull’esecuzione effettiva del comando.
Questa è un’impostazione utile in fase di test del servizio automatico che stiamo impostando ma è sconsigliata nel seguito per evitare di essere letteralmente inondati di notifiche (specie se impostiamo cron molto veloci ma a meno di usare una casella di posta dedicata soltanto per questo ed altri scopi “tecnici”).
Confermiamo eventualmente la casella di posta, e clicchiamo su “Aggiorna email” per continuare.
Frequenza di esecuzione di un cron job
Adesso possiamo stabilire la frequenza dell’esecuzione del comando automatizzato: per fare questo basta sfruttare una sintassi Linux-based che all’inizio può risultare difficile ma che, alla prova dei fatti, risulta molto semplice da comprendere.
La sintassi generale è questa:
MINUTI ORE GIORNO MESE SETTIMANA COMANDO
ed ogni campo può assumere il valore * (per indicare “sempre”) oppure un numero compatibile col formato (ad esempio mese va da 1 a 12).
Alcuni esempi pratici sono i seguenti:
– esegui due volte al giorno, alle 12 ed alle 19:
00 12,19 * * * /home/path/to/cron.php
– esegui ogni giorno dalle 9 alle 18
00 09-18 * * * /home/path/to/cron.php
Nella casella di testo inseriremo il comando che dovrà essere eseguito, ad esempio:
php5 /home/username/www/path/to/cron.php
che dice al sistema di lanciare mediante PHP 5 il file cron.php nella cartella indicata. Attenzione perché va sempre indicato il percorso completo.
Per quanto riguarda i servizi hosting proposti da HostingVirtuale, il cron può essere attivato su richiesta del cliente contattando il supporto tecnico via email e indicando in oggetto il dominio.
Si tratta di un passaggio che offre maggiori garanzie al cliente che può impostare tale funzionalità con l’aiuto di un sistemista che riesce a comporre la sintassi della frequenza di esecuzione in modo immediato e senza dubbi di sorta.
Non appena saranno disponibili i nuovi pacchetti hosting con pannello di controllo cPanel, sicuramente sarà possibile attivare e modificare i cron in maniera semplice ed indipendente.
Serena dice
Salve, ho la necessità di configurare 2 processi, distanziati tra loro di 10 minuti, che si ripetono 2 volte all’ora.
Mi spiego meglio.
Processo 1 start ore 08.15
Processo 2 start ore 08.25
Processo 1 start ore 08.45
Processo 2 start ore 08.55
Processo 1 start ore 09.15
Processo 2 start ore 09.25
Processo 1 start ore 09.45
Processo 2 start ore 09.55
Processo 1 start ore 10.15
Processo 2 start ore 10.55
…. e così via.
Come fare?
Grazie in anticipo.
Massimo dice
Ciao Serena, grazie per averci contattato. Puoi impostare i due cron in questo modo:
15,45 * * * * user /file
25,55 * * * * user /file
Verranno quindi eseguiti ogni 30 minuti ma il primo a partire dal 15° minuto e il secondo dal 25° minuto.
Valerio dice
Salve, ho necessità di eseguire un file dopo che il pc rimane inattivo per 5 minuti.
Grazie