Gestione del cron senza accesso al server e senza uso di crontab!

7 contenuti / 0 new
Ultimo contenuto
Gestione del cron senza accesso al server e senza uso di crontab!

Cari webmaster drupal in erba, questa è proprio per voi!

Far partire il cron.php regolarmente, senza avere accesso al server o senza saper gestire un server adesso è possibile!

Inserite queste semplici righe in PHP in un blocco qualunque di quelli che compaiono in modo fisso nelle vostre pagine oppure createne uno appositamente:

<?php
$tmstmp
=mktime();
$last=file_get_contents("lastcron.txt");
if((
$tmstmp-$last)>(60*60*6))
{
 
$pntr=fopen('lastcron.txt', 'w');
 if(
fwrite($pntr, $tmstmp))
 {
  
mail ("dest","cron OK","OK");
   include (
"cron.php");
 }
 else
 {
  
mail ("dest","cron FAIL","FAIL");
 }
 
fclose($point);
}
?>

Ovviamente sostituite le righe con mail ("dest", con il vostro indirizzo email al posto di dest.

Poi è necessario creare un file di testo che si chiama lascron.txt (potete scriverci dentro quello che volete 123456 va benissimo) e caricarlo sul server nella stessa cartella del file cron.php di Drupal (normalmente la root del vostro accesso FTP). Poi impostate i permessi del file a 666 (rw,rw,rw): io l'ho fatto con FileZilla, click destro con il mouse, attributi, flag su scrittura per tutti... l'importante che sia fatto, il modo non è importante ;)

Fatto!

Il cron.php adesso partirà più o meno regolarmente a seconda di quanto è visitato il vostro sito e vi invierà una mail di conferma o di errore. Nel mio esempio cerco di lanciarlo al massimo ogni 6 ore e non più frequentemente: la riga è quella con (60*60*6), corrisponde ai secondi in 6 ore.

Per i pignoli aggiungo che nel database, tabella 'variable', il record con il campo 'name' uguale a "cron_last" ha nel campo 'value' un valore che può essere utilizzato al posto del meccanismo del file di testo, per il confronto con il timestamp attuale (alla prima riga mktime();).

Più di così! Se vi piace e vi è utile (ma anche no!) lasciatemi un commento sul mio sito: http://www.diegobelotti.com/?q=cron_script

Buon Drupal a tutti!
Diego

è gia fatto e gira perfetto!!!!

Se poi non sei contento usa webcron.org è gratis e fa il suo dovere!!!

ciao

Hai ragione Uccio! Io come al solito prima posto e poi cerco :))))
Per cui reinvento l'acqua calda ogni volta... va be' spero prima o poi di far qualcosa di utile per la community!

Ciao a tutti!

Apprezzo molto che tu periodicamente pubblichi pezzi di codice!! Purtroppo spesso si preferisce usare moduli per cose che banalmente sarebbero fattibili con poche righe nella pagina giusta, divulga e proponi tutti gli script che ti sembrano, sono comunque documentazione ed aiutano te a capire drupal e aiutano i nuovi ad avvicinarsi se non alla programmazione almeno allo scripting di drupal!!!

Pensavo comunque di riproporre questo script in una sezione dedicata agli script da mettere nella documentazione.

Grazie

Va bene. Allora pubblicherò a breve (spero) uno script per fare una sorta di filtro IP automatico, per bloccare l'accesso se proviene da IP che cercano di infilare pubblicità (link) nei commenti attraverso spyder o che richiedono indirizzi inesistenti per bucare il PHP ecc. ecc.

Non so ancora bene come fare, ma ci arriverò...E poi vorrei anche personalizzare la pagina di accesso negato di Drupal, in modo che spieghi perchè si è blacklistati e come fare per rimuoversi.

oh, non è che c'è già anche tutto questo vero!? In questo caso mi risparmierei un bel po' di lavoro!

ciao ciao!

Per il linking prova il modulo SPAM, da ancora qualche noia con Drupal 5.1, ma a me ha salvato il sito da 50 commenti di spam al giorno :D

Ciao
Marco
--
My blog
Working at @agavee

Uccio wrote:
è gia fatto e gira perfetto!!!!

Se poi non sei contento usa webcron.org è gratis e fa il suo dovere!!!

ciao

non ho accesso al server, devo lanciare manualmente
http://sito.com/admin/logs/status/run-cron
altrimenti non si aggiornano i contenuti nell'aggregatore ecc..

quindi esiste già un modulo che svolge il compito di questo hack....o bisogna risolvere con un controllo come quello proposto?

grazie