Creare un Cronjob su hosting Linux

      Nessun commento su Creare un Cronjob su hosting Linux

Nei sistemi operativi Unix e Unix-like, il comando crontab consente la pianificazione di comandi, ovvero consente di registrarli presso il sistema per essere poi mandati in esecuzione periodicamente.

Generalmente, crontab usa un demone, chiamato crond, che è costantemente in esecuzione in background e, una volta al minuto, legge i contenuti del registro dei comandi pianificati ed esegue quelli per cui si è esaurito il periodo di attesa. Un comando mandato in esecuzione da crontab viene chiamato cronjob.

Operatori

Esistono diversi modi per specificare valori multipli in un campo:
L’operatore virgola («,») specifica una lista di valori, ad esempio: «1,3,4,7,8».
L’operatore trattino («-») specifica un intervallo di valori, ad esempio: «1-6», che equivale a «1,2,3,4,5,6».
L’operatore asterisco («*») specifica tutti i possibili valori di un campo. Ad esempio, un asterisco nel campo dell’ora è equivalente a «ogni ora».
Esiste anche un operatore supportato da alcune versioni estese del cron, l’operatore sbarra («/»), che può essere usato per saltare un certo numero di valori. Ad esempio, «*/3» nel campo dell’ora equivale a «0,3,6,9,12,15,18,21»; l’operatore «*» specifica «ogni ora», ma il «/3» indica che solo il primo, quarto, settimo e così via dei valori restituiti da «*» vengano usati.

Campi

.---------------- [m]inute: minuto (0 - 59) 
|  .------------- [h]our: ora (0 - 23)
|  |  .---------- [d]ay [o]f [m]onth: giorno del mese (1 - 31)
|  |  |  .------- [mon]th: mese (1 - 12) OPPURE jan,feb,mar,apr... 
|  |  |  |  .---- [d]ay [o]f [w]eek: giorno della settimana (0 - 6) (domenica=0 o 7)  OPPURE sun,mon,tue,wed,thu,fri,sat 
|  |  |  |  |

*  *  *  *  *  comando da eseguire

PS:Per «giorno della settimana» (5º campo), sia 0 che 7 sono considerati il valore domenica.

Ok, dopo avervi raccontato tutta la favoletta “teorica” andiamo a vedere nella sostanza come si fa!

Abbiamo principalmente due comandi, anche se ne esistono di altri:

crontab -e Modifica il file crontab o o crea se non esiste
crontab -l Mostra il file crontab

A questo file che si aprirà, in base all’editor da noi scelto (nano, VI, VIM…) dobbiamo aggiungere una nuova riga con la sintassi precedentemente vista.

Ad esempio questo fa un backup degli utenti alle 5:00 di ogni settimana:

0 5 * * 1 tar -zcf /var/backups/home.tgz /home/


Siccome la ruota è già stata inventata e per non impazzire ulteriormente vi consiglio di usare un generatore, se ne trovano molti in giro, io vi coniglio Crontab Code Generator che oltre ad una semplice interfaccia grafica con cui possiamo anche selezionare più elementi contemporaneamente ad esempio per gli orari ci fornisce una spiegazione dettagliata approposito di crontab, che fa sempre comodo se ricerchiamo situazioni più complesse che non posso coprire nell’articolo.

È tutto! Create e sperimentate i vostri cronjob!