Comment configurer une commande de travail cron pour exécuter une URL?
/usr/bin/wget -q http://www.domain.com/cron_jobs/job1.php >/dev/null 2>&1
Pourquoi je ne peux pas faire ce travail!? J'ai tout essayé .. Le script PHP doit envoyer un courrier électronique et créer des fichiers, mais rien n'est fait
La commande retourne ceci:
Output from command /usr/bin/wget -q http://www.domain.com/cron_jobs/job1.php ..
No output generated
... mais il crée toujours un fichier vide dans /root
à chaque exécution !? Pourquoi?
Utilisez curl comme ceci:
/usr/bin/curl http://domain.com/page.php
Ne vous inquiétez pas pour le résultat, il sera ignoré
J'ai eu le même problème. La solution consiste à comprendre que wget génère deux choses: les résultats de la demande d’URL ET les messages d’activité sur ce qu’elle fait.
Par défaut, si vous ne spécifiez pas de fichier de sortie, il en créera un, apparemment nommé d'après le fichier dans votre URL, dans le dossier actuel dans lequel wget est exécuté.
Si vous souhaitez spécifier un autre fichier de sortie:
-O outputfile.txt
affichera les résultats de l’URL dans outputfile.txt, en écrasant ce qui se trouve là.
Si vous souhaitez ajouter à ce fichier, écrivez sur std out puis ajoutez-y le fichier à partir de là: Et voici le truc: pour écrire sur std out, utilisez:
-O-
le second tiret remplace un nom de fichier et indique à wget d'écrire les résultats de l'URL sur std out.
utilisez ensuite la syntaxe suivante, >>, pour ajouter un fichier de votre choix:
wget -O- http://www.invisibility.com >>/var/log/invisibility.log
La lettre minuscule o spécifie l'emplacement du journal d'activité. Ainsi, si vous souhaitez consigner l'activité pour la demande d'URL, vous pouvez:
wget -o http://someurl.com /var/log/activity.log
-q supprime la sortie des messages d'activité
wget -q http://someurl.com /var/log/activity.log
ne consignera aucune activité dans le fichier spécifié, et je pense que c’est le point crucial où les gens se perdent.
N'oubliez pas: - O est un raccourci pour --output-document - o est un raccourci pour --output-file, qui est le journal d'activité.
Il m'a fallu des heures pour le faire fonctionner. Merci aux gens qui écrivent des solutions. Il faut également vérifier si des guillemets simples ou doubles sont nécessaires, sinon, l’analyse erronée de l’URL conduisant à des messages d’erreur sera analysée:
Cela a fonctionné (en utilisant des guillemets simples):
/usr/bin/wget -O -q 'http://domain.com/cron-file.php'
Cela donnait des erreurs (utilisant des guillemets):
/usr/bin/wget -O -q "http://domain.com/cron-file.php"
Je ne sais pas si le fichier/usr/bin/est nécessaire. Lisez à propos des différentes façons de faire l'ordre des -O -q. Il est difficile de trouver sur le Web une source fiable et définitive pour ce sujet. Tant d'exemples différents.
Un manuel wget en ligne peut être trouvé ici, pour les options disponibles (mais vérifiez auprès de la distribution Linux utilisée pour une version mise à jour): http://unixhelp.ed.ac.uk/ CGI/man-cgi? Wget
Pour utiliser wget pour afficher le HTML:
wget -qO- http://www.example.com