Crontab Drupal: Configura i cron jobs per servizi scheduling

[toc]

Introduzione al servizio Scheduling di CronTab (1/2)


Il Cron: capirne il significato e la funzione

Alcuni processi devono essere eseguiti a determinati orari, un determinato numero di volte. Esempi di questi possono essere i processi di backup che vengono lanciati ogni notte, oppure un analizzatore di log che deve girare ogni minuto. Su drupal, processi automatici gestiti dal cron sono ad esempio l'invio di email, l'indicizzazione dei contenuti per la ricerca interna e tanti altri.
Questi processi devono girare un certo numero di volte oppure in determinati giorni; il resto del tempo essi stanno fermi fino a quando un utente non interagisce con essi e li richiama (con gli appositi comandi). Qui è dove il CRON si rende utile. Vi permette di programmare (o "schedulare", come si dice in 
gergo) l'esecuzione di un lavoro in qualsiasi momento desideriate, ogni minuto, ogni ora, giornalmente, mensilmente. 
E' un sollievo sapere che ci sono vari programmi che stanno girando senza alcun bisogno della vostra supervisione. Drupal integra di default un'opzione per lanciare il cron manualmente, ma numerosi moduli aggiuntivi ne consentono la programmazione a determinati intervalli di tempo: un esempio è il poormanscron o ancora l'elysia cron su cui è presente una guida su questo portale

Il Cron e Le Basi


Cron può essere fatto partire da rc o da rc.local e ritorna immediatamente al prompt, sicchè non c'é bisogno di lanciarlo in background. Cron ricerca il file /etc/crontab per le voci (le cosiddette "entry") di sistema e /var/spool/cron
per le voci relative agli utenti che si trovano nel file /etc/passwd. Tutte le voci ritrovate sono caricate in memoria.
Tutto ciò viene ripetuto ogni minuto appena cron "si sveglia" ed esegue diversi compiti:
a) ricerca le voci ed esegue i programmi che sono stati schedulati. 
b) determina se il modtime (vale a dire la data e l'ora dell'ultima modifica) nella directory di cron è cambiato
c) se il modtime nella directory cron è cambiato, cron ricerca tutti i file e ricarica i programmi che sono stati modificati.

Poiché cron cerca le modifiche ogni minuto, non è necessario farlo ripartire quando sono stati effettuati dei cambiamenti (editati) nei file nella directory cron.

Utilizzare crontab


Il "cron daemon" legge il file "crontab"; ogni utente può avere la propria versione di questo file, orientata agli specifici compiti che si vogliono eseguire. I flag associati con le applicazioni crontab specificano quando aprire crontab per avere la lista o per rimuovere e modificare compiti.

La sintassi per il programma crontab è la seguente:

crontab [-u user] file
crontab [-u user] -l -e -r

Questi parametri indicano:
-u questa opzione comunica al sistema il nome dell'utente che "possiede" il file. Se l'opzione -u è omessa, il sistema deduce per default che state usando il vostro crontab personale.
Il comando switch user (su) può confondere il crontab, così se siete nello switch "su" assicuratevi di utilizzare l'opzione -u. 
-l questa opzione dice a crontab di elencare i file nello standard output, in poche parole visualizza il file.
-e questa opzione dice a crontab di editare il file. Cron usa l'editor definito dalla variabile EDITOR o da VISUAL. Se nessuna di queste variabili è definita, parte in automatico l'editor "vi".
Quando si esce dall'editor, è immediamente piazzato nella locazione corretta e viene aggiornato il campo data/ora.
-r questa opzione rimuove il file crontab specificato, se nessun file viene specificato, rimuove il file crontab dell'utente.

 

Introduzione al servizio Scheduling di CronTab (2/2)



--Voci in Crontab--


Solo 2 tipi di voci sono permesse nel crontab: i settaggi ambientali (Crontab Environmental settings) e i settaggi di comando (Crontab Command settings)

a) Crontab Environmental settings
I settaggi ambientali utilizzano la seguente forma:

nome = valore

Cron conosce già le diverse variabili ambientali. Per esempio, SHELL è settato a /bin/bash.
Altre variabili ambientali, come LOGNAME e HOME, sono associate al possessore del file. SHELL e HOME posso essere sovrascritte nello script, mentre non è possibile farlo con LOGNAME. Se MAILTO è definito (e non è settato a " "), tale variabile è inserita in una riga nel file crontab, e spedisce ogni messaggio 
generato all'utente specificato in questo campo.
La seguente riga mostra MAILTO settato ad uno specifico utente (luca):
# spedisce tutti gli output all'utente *luca* (non importa chi è il proprietario di questo crontab)
MAILTO=luca

b) Crontab Command settings
I settaggi comandi usano un formato standard: ogni riga inizia con cinque campi ora/data. Se è il crontab di sistema, il campo successivo è lo username associato con la voce. Il campo seguente sarà il comando da eseguire. Il comando verrà 
eseguito solo quando la data e l'ora corrente coincideranno con tutti i valori dei campi time/date del crontab. Nel paragrafo succ. vi è un esempio.

I campi disponibili per la data e l'ora sono i seguenti:

Campi | Valori ammessi 
---------- -----
minuti | 0-59 
ore | 0-23 
giorno | 1-31 
mese | 1-12 
giorno della settimana | 0-7 (0 & 7 indicano la domenica)

Questi campi possono anche contenere un asterisco (*) invece di un numero. Un asterisco indica che ogni possibile valore è ammesso.

--Dettagli---
La righe seguenti mostrano il /etc/crontab installato per default nella RedHat 6.2:

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly

Avete notato come crontab chiama i quattro diversi eventi?
Il primo è associato ad eventi orari (eseguiti nel primo minuto di ogni ora)
Il secondo è associato ad eventi giornalieri (eseguiti alle ore 4:02 di ogni giorno)
Il terzo è associato ad eventi settimanali (eseguiti alle 4:22 di ogni domenica)
L'ultimo è associato ad eventi mensili (eseguiti alle 4:42 nel primo giorno di ogni mese).

Qualcosa da ricordare:
Il sistema non va indietro e raccoglie i lavori cron, esso li esegue solo se la data e l'ora sono uguali alla voce nel file. Ad esempio se il computer è spento 
quando dovrebbe essere eseguito il cron, quel programma non viene più eseguito.

 

Permessi e divieti di accesso al servizio crontab


Ci sono due file che abilitano la root (solo la root dovrebbe avere il permesso di editare o creare questi file) per autorizzare o vietare l'utilizzo dei servizi crontab agli utenti; essi sono:
/etc/cron.allow -- Questo file in genere non esiste, lo dovete creare. Ogni voce che piazzerete in questo file coprirà quella inserita in /etc/cron.deny. Se il
file /etc/cron.allow esiste, solo gli utenti specificati dentro posso usufruire del servizio crontab.
/etc/cron.deny -- Questo file esiste per default. In esso, ci metterete lo username delle persone a cui vietate l'utilizzo del servizio crontab.

 
Drupal: 

Ti potrebbero anche interessare:

Formati di input in Drupal: Configurazione

I formati di input in Drupal definiscono un modo di processare il testo generato dall'utente.
Ogni filtro è progettato per compiere un compito preciso, e generalmente rimuove o aggiunge elementi al testo prima che esso venga visualizzato.
Drupal di base offre due formati di input "Filtered Html" e "Full Html" e
Drupal: 

Imparare a guadagnare con Google Adsense: Strumenti e Risorse iniziali

Imparare a guadagnare con Google Adsense è probabilmente il modo più semplice per fare soldi online. Ci sono tantissimi modi per guadagnare su internet ma il modo forse più automatico possibile è proprio il servizio offerto da Google e che prende il nome di Adsense.

In questo articolo vi mostrerò tutto quello che serve per fare soldi con Google Adsense e, soprattutto, i consigli e i metodi usati personalmente per iniziare a guadagnare velocemente con la pubblicazione degli annunci.

Internet Marketing: 

L’algoritmo DES (Data Encryption Standard) e altri algoritmi a chiave simmetrica

Si tratta di un algoritmo a chiave simmetrica proposto da IBM nel 1975 e accettato come standard nel 1977 e da allora, e fino a tempi recenti, è stato utilizzato dagli enti governativi americani (e da altri) per cifrare dati sensibili.

Risorse per sviluppo: 

Codice Poligrafico: La Scacchiera di Polibio

Il più antico codice poligrafico (sostituzione di tipo multiplo) è probabilmente la scacchiera di Polibio. Lo storico greco Polibio (~200-118AC), nelle sue Storie (Libro X) descrive un cifrario che attribuisce ai suoi contemporanei Cleoxeno e Democleito: l'idea è quella di cifrare una lettera con una coppia di numeri compresi tra 1 e 5, secondo la descrizione di una scacchiera 5x5.

Risorse per sviluppo: