Vota questo articolo :
Questo articolo vi è stato utile ?
Sì
No
Vous avez noté 0 étoile(s)
Procédure
Lo scopo di un cron job è quello di eseguire automaticamente uno script, un comando o un programma a orari prestabiliti.
Con"LWS cron job", potete programmare l'esecuzione di uno script sul vostro sito a orari diversi. Ad esempio, una volta alla settimana, una volta al giorno, l'8 di ogni mese, ecc.
A questi compiti viene applicato un timeout di 240s, il che significa che se lo script impiega più di 4 minuti per essere eseguito, verrà automaticamente interrotto dopo 4 minuti.
1. Andate allo strumento Cron Task
Per prima cosa, collegatevi al vostro pannello client LWS
Poi andate nella gestione del servizio per il quale volete creare un cron job.
Una volta entrati nella gestione del servizio, cercate il blocco "Database & PHP" e cliccate su "Cron Tasks".
2. Configurazione della frequenza del cron job
La prima cosa da configurare per il cron job è la sua periodicità.
LWS offre una serie di preimpostazioni che consentono di configurare questo aspetto in un solo clic.
Per farlo, basta utilizzare il primo elenco in cima al modulo e selezionare uno dei parametri proposti. I campi verranno automaticamente compilati in base alla periodicità indicata nell'elenco selezionato.
Se la periodicità che si desidera impostare non è proposta in questo primo elenco, non preoccupatevi, possiamo configurare ogni elemento.
Per ogni elemento (minuti, ore, giorni, ecc.) è possibile inserire i valori manualmente, oppure utilizzare il campo elenco a destra di ogni campo.
Se, ad esempio, voglio che la mia attività inizi ogni giorno alle 12:27, basta selezionare il numero 27 nell'elenco allegato al campo dei minuti e selezionare 12:00 nell'elenco allegato al campo delle ore.
Suggerimenti / Consigli
3. Configurazione del campo di comando
Esistono tre modi per richiamare il vostro script tramite lo strumento Cron Task:
La differenza tra queste tre opzioni risiede principalmente nel modo in cui eseguono lo script.
Una chiamata Wget o Curl utilizza il protocollo HTTP, il che significa che sarà soggetta alle configurazioni e alle restrizioni di Apache, come il timeout, che può essere relativamente breve.
La chiamata PHP, invece, sarà libera dalle limitazioni che abbiamo già discusso con gli altri due metodi. Pensate alla chiamata PHP come a una connessione SSH.
Ci si potrebbe chiedere quale metodo scegliere per impostare il task Cron. La mia risposta è che non ci sono differenze reali per gli script di base che vengono eseguiti rapidamente. Tuttavia, se il vostro task CRON è piuttosto grande, con molte azioni eseguite e quindi un tempo di esecuzione leggermente più lungo, il metodo più adatto sarà una chiamata PHP. A differenza di Curl o Wget, il timeout sarà più lungo (4 minuti).
Vedremo come impostare un cron job per ciascuna delle chiamate sopra menzionate. Prenderemo come esempio un semplice sito che chiama uno script root.
Chiamata cURL
In una chiamata curl che utilizza il protocollo HTTP, chiamiamo semplicemente l'URL del nostro file come segue
curl https://www.mon-domaine.fr/cron.php
Potrebbe anche essere necessario inviare dei parametri al nostro script. Per farlo, basta aggiungerli come segue:
curl -d "param1=valore1¶m2=valore2" https://www.mon-domaine.fr/cron.php
Possiamo quindi recuperare i valori dei parametri nel codice del nostro script POST.
Chiamata Wget
Durante una chiamata Wget, che utilizza anch'essa il protocollo HTTP, come per la chiamata cURL, chiameremo anche l'URL del nostro script. In questo modo si otterrà :
wget "https://www.mon-domaine.fr/cron.php"
Se dobbiamo passare dei parametri allo script, con Wget non abbiamo altra scelta che passare i parametri in GET. Ecco come scrivere il comando:
wget "https://www.mon-domaine.fr/cron.php?param1=value1¶m2=value2"
Nello script, possiamo recuperare questi due parametri usando GET.
Chiamata PHP
Nel caso di un sito semplice, immaginiamo che il file contenente il mio script si chiami cron.php
È sufficiente inserire il seguente comando nello strumento Cron Task:
php /htdocs/cron.php
La versione di PHP utilizzata per eseguire lo script sarà la 8.0 per impostazione predefinita.
Se si desidera utilizzare una versione specifica di PHP, è sufficiente modificare leggermente la chiamata. Per esempio, se si vuole usare la versione 7.2 per eseguire lo script, questo è il comando chiamato :
php72 /htdocs/cron.php
Potrebbe anche essere necessario passare un argomento che sarà poi utilizzato nel nostro script.
Per esempio, immaginiamo che lo scopo del nostro script sia quello di inviare un'e-mail in base a un criterio da noi definito, come la data di nascita. Potremmo quindi voler passare questo criterio nella chiamata. Ecco come farlo tramite la riga di comando:
php72 /htdocs/cron.php tipo=anniversario
Casi speciali
Esistono anche casi speciali, a seconda di ciò che si usa per il proprio sito.
Per esempio, nel caso di un sito creato con il framework Cakephp, la configurazione del task CRON sarà un po' diversa, perché avverrà tramite un comando SHELL chiamato dal sistema del framework.
Immaginiamo di avere un sito di e-commerce creato con il framework Cakephp e di voler impostare uno script che invii un'e-mail al miglior cliente per offrirgli un codice promozionale.
Creeremo un comando di Cake che chiameremo SendCP, che conterrà lo script che gestisce ciò che vogliamo fare. Ecco come configurare il task Cron:
php72 /htdocs/Console/cake.php SendCP
Sarebbe lungo fare un esempio per ogni caso, ma con quello che è stato dato qui, si ha già una buona base per usare lo strumento dei task di Cron.
Utilizzando i vari esempi, ora sappiamo come scrivere il nostro comando per ;
4. Creare un file di log
Ora vedremo come creare un file di log in modo da poter vedere cosa è successo durante lo script chiamato da Cron.
Per farlo, utilizzeremo l'esempio seguente per il nostro script CRON.
Esempio di funzione echo PHP per il file di log
<?php /* Così non ci si deve preoccupare della cache */ header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0"); header("Cache-Control: post-check=0, pre-check=0", false); header("Pragma: no-cache"); /* Scrivere la data corrente nel file, ad esempio: 2023/01/19 12:24:01 */ /* PHP_EOL consente di saltare una riga nel file */ echo date('Y/m/d h:i:s').PHP_EOL; /* Scrivere la frase sottostante nel file di log */ echo 'Registrazione del mio Cron'.PHP_EOL.PHP_EOL; ?>
Rendering del file di log a seguito dell'avvio dello script tramite Cron Job
2023/01/19 02:57:01 Registrazione del mio Cron 2023/01/19 03:57:01 Registrazione del mio Cron 2023/01/19 04:57:01 Registrazione del mio Cron 2023/01/19 05:57:01 Registrazione del mio Cron 2023/01/19 06:57:01 Registrazione del mio Cron 2023/01/19 07:57:01 Registrazione del mio Cron 2023/01/19 08:57:01 Registrazione del mio Cron
Ciò che si inserisce nel file di log dipenderà quindi dall'utente e da ciò che si vuole tracciare nello script. Ad esempio, potrebbe essere un elenco di azioni con il risultato per ciascuna di esse.
Esempio di chiamata cURL con ritorno in un file di log
Per una chiamata cURL, ecco il comando da inserire nel campo "Command":
curl https://www.mon-domaine.fr/cron.php >> /htdocs/logs/cron_curl.log
In questo esempio, il feedback di scrittura (echo PHP) sarà inviato al file cron_curl.log nella cartella logs. Se il file o la cartella non esistono, verranno creati automaticamente.
Esempio di chiamata a wget con feedback in un file di log
Per una chiamata a Wget, ecco il comando da utilizzare:
wget -O - -q https://www.mon-domaine.fr/cron.php >> /htdocs/logs/cron_wget.log
In questo esempio, il feedback di scrittura (echo PHP) sarà inviato al file cron_wget.log nella cartella logs. Se il file o la cartella non esistono, verranno creati automaticamente.
Esempio di chiamata PHP con feedback in un file di log
Per una chiamata PHO, ecco il comando da utilizzare:
php72 /htdocs/cron.php >> /htdocs/logs/cron_php.log
In questo esempio, il feedback di scrittura (echo PHP) sarà inviato al file cron_php.log nella cartella logs. Se il file o la cartella non esistono, verranno creati automaticamente.
Una volta create le attività cron, è possibile trovarle direttamente nell'elenco che appare sotto il modulo di aggiunta.
Qui troverete un elenco con il comando registrato, la periodicità e la possibilità di cancellare un cron o di metterlo in pausa.
Vota questo articolo :
Questo articolo vi è stato utile ?
Sì
No
0mn lettura
Multidominio - Mettere più domini sullo stesso servizio di web hosting
1mn lettura
È possibile rimuovere la funzione anti-spam di RSpamD su un hosting condiviso?
0mn lettura
Come posso visualizzare le e-mail inviate con la funzione PHP mail e bloccate da SPAMASSASSIN?