web-dev-qa-db-fra.com

Comment configurer une commande de travail wget cron

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?

9
clarkk

Utilisez curl comme ceci:

/usr/bin/curl http://domain.com/page.php

Ne vous inquiétez pas pour le résultat, il sera ignoré

17
Ivan

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

8
Zac Imboden

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

3
Guest

Pour utiliser wget pour afficher le HTML:

wget -qO- http://www.example.com
1
Nabi K.A.Z.