web-dev-qa-db-fra.com

Utiliser WGET pour exécuter un cronjob PHP

J'ai essayé de faire un cron et de lancer une url toutes les 5 minutes.

J'ai essayé d'utiliser WGET mais je ne veux pas télécharger les fichiers sur le serveur, tout ce que je veux, c'est juste de le lancer.

C'est ce que j'ai utilisé (crontab):

*/5 * * * * wget http://www.example.com/cronit.php

Existe-t-il une autre commande à utiliser autre que wget pour simplement lancer l'URL et ne pas la télécharger?

43
Abdullah Alsharif

Vous pouvez dire à wget de ne pas télécharger le contenu de différentes manières:

wget --spider http://www.example.com/cronit.php

qui va juste effectuer une requête HEAD mais fera probablement ce que vous voulez

wget -O /dev/null http://www.example.com/cronit.php

ce qui sauvera la sortie dans/dev/null (un trou noir)

Vous voudrez peut-être aussi regarder le paramètre -q de wget, qui l'empêche de créer une sortie

Je pense que la meilleure option serait probablement:

wget -q --spider http://www.example.com/cronit.php

c'est à moins que vous n'ayez une logique spéciale vérifiant la méthode HTTP utilisée pour demander la page

95
James C
wget -O- http://www.example.com/cronit.php >> /dev/null

Cela signifie envoie le fichier à stdout, et envoie stdout à/dev/null

14
Emil Vikström

Si vous voulez obtenir une sortie uniquement lorsque php échoue:

php -r 'echo file_get_contents(http://www.example.com/cronit.php);'

De cette façon, vous recevez un email de la part de cronjob uniquement lorsque le script échoue et non à chaque appel du php.

2
angelrove

J'ai essayé de suivre le format, fonctionne bien

*/5 * * * * wget --quiet -O /dev/null http://localhost/cron.php
2
Mosiur