Come si crea un cron job dal pannello LWS?

Procédure

Che cos'è un cron job?

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.

Come si crea un cron job?

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".

Come si crea un cron job dal pannello LWS?

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.

Come si crea un cron job dal pannello LWS?

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

  • Salvo casi molto particolari, si sconsiglia di impostare un cron job da eseguire ogni minuto per non saturare il server e quindi ridurre le prestazioni del servizio.
  • Preferite attività che vengono eseguite di notte e a orari specifici (ad esempio, alle 3.47) per evitare di eseguire le vostre attività contemporaneamente a eventuali attività automatiche, come potrebbero fare alcuni CMS o strumenti utilizzati sul vostro sito.

3. Configurazione del campo di comando

Esistono tre modi per richiamare il vostro script tramite lo strumento Cron Task:

  • Chiamata PHP
  • Chiamata a wget
  • chiamata cURL

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&param2=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&param2=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 ;

  • eseguire semplicemente il nostro script agli intervalli prescelti
  • eseguire il nostro script con l'aggiunta di parametri e agli intervalli prescelti

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.


Come si gestiscono i task di cron?

Una volta create le attività cron, è possibile trovarle direttamente nell'elenco che appare sotto il modulo di aggiunta.

Come si crea un cron job dal pannello LWS?

Qui troverete un elenco con il comando registrato, la periodicità e la possibilità di cancellare un cron o di metterlo in pausa.

Come si crea un cron job dal pannello LWS?

Vota questo articolo :

Questo articolo vi è stato utile ?

Article utile

Article non utileNo

Vous souhaitez nous laisser un commentaire concernant cet article ?

Si cela concerne une erreur dans la documentation ou un manque d'informations, n'hésitez pas à nous en faire part depuis le formulaire.

Pour toute question non liée à cette documentation ou problème technique sur l'un de vos services, contactez le support commercial ou le support technique

MerciMerci ! N'hésitez pas à poser des questions sur nos documentations si vous souhaitez plus d'informations et nous aider à les améliorer.


Vous avez noté 0 étoile(s)

Articoli simili

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?


Fate una domanda al team LWS e alla sua comunità