2011-10-11 20 views
5

im cercando di impostare un cronjob per eseguire un file PHP. Voglio solo sapere se lo sto facendo giusto o no.funzionerà questo cronjob?

consente di dire che il php si trova a http://mysite.com/myscript/cronjob.php e voglio che venga eseguito ogni 3 ore.

sono molto nuovo di cronjobs quindi mi scuso se sembra che non ho idea di cosa sto facendo.

Minute Hour Day  Month Weekday  Command 

* */3  * * * http://mysite.com/myscript/cronjob.php 

voglio che esegua questo script PHP ogni 3 ore. funzionerà o devo usare un comando diverso?

+2

È necessario utilizzare comandi comprensibili al sistema. E ci sono molti buoni crontab online. Google finché non ne trovi uno che parla la tua lingua. – hakre

risposta

5

No, questo non funzionerà. Un URL non è un eseguibile, è semplicemente un URL.

Si potrebbe mettere wget http://mysite.com/myscript/cronjob.php per il comando, ma è davvero quello che vuoi?

Il modo migliore (se lo script si trova sul server locale) è quello di chiamare PHP direttamente:

php /var/www/myscript/cronjob.php

0

In aggiunta a ciò che altri hanno detto di non essere in grado di specificare un URL per interrogare:

Ho trovato diversi riferimenti in linea thatwarn

A.) Ripetere il modello come/2 per ogni 2 minuti o/10 per ogni 10 minuti non è supportato da tutti i sistemi operativi. Se si tenta di usarlo e crontab si lamenta probabilmente non è supportato.

Tuttavia, supponendo che i modelli di ripetizione siano supportati, dovrebbe funzionare.

Quindi un modo più portatile sarebbe quello di fare:

* 0,3,9,12,15,18,21  * * * php /var/www/myscript/cronjob.php 
+1

Il tuo cron recupera gli URL per te? – Brad

+0

@Brad err err, no. Non l'ho visto :) –

4

Quasi, questo dovrebbe farlo

* */3 * * * wget -q -o /dev/null http://mysite.com/myscript/cronjob.php 

o con l'arricciatura

* */3 * * * curl -s -o /dev/null http://mysite.com/myscript/cronjob.php 

l'opzione -s/-q silenzierà l'output e -o reindirizzerà lo scr ipts output in/dev/null