web-dev-qa-db-fra.com

Exécuter une commande curl à l'aide de travaux CRON

Je veux exécuter cette déclaration:

curl 'http://localhost:8983/solr/dataimport?command=full-import'

toutes les 10 minutes en utilisant les travaux CRON.

Comment puis-je y arriver?

6
Archit Arora

Quelque chose comme:

crontab <<'EOF'
Shell=/bin/bash
#min hr md mo wkday command
*/10 *  *  *  *     curl 'http://localhost:8983/solr/dataimport?command=full-import'
EOF

Utilisez crontab -l pour y jeter un coup d'œil.MAIS, ajoutez une option à cette commande curl pour placer la sortie à un endroit spécifique, car elle peut être exécutée à un endroit auquel vous n'avez pas accès en écriture. De même, si curl est inhabituel, vous devrez peut-être spécifier son chemin complet, tel que /usr/bin/curl, ou définir la variable crontab PATH.

Les guillemets autour de EOF empêchent la substitution dans le contenu du document HEREIS (tout ce qui se situe entre <<EOF et EOF). HEREIS documents are a Shell feature, not part ofcrontab`.

Voir man 5 crontab pour une ventilation détaillée de ce qui se passe dans les fichiers crontab.

Je garde habituellement un fichier ~/.crontab à éditer avec une première ligne spéciale, et le bit d'exécution défini:

#!/usr/bin/env crontab 
Shell+/bin/sh
[... etc.]

Cela me permet d’éditer mon ~/.crontab et de le lancer avec:

$ vi ~/.crontab
$ ~/.crontab

(J'ai aussi généralement des extensions pour indiquer à quel hôte ils sont destinés, comme ~/.crontab.bigbox)

9
Alex North-Keys

En cas d'utilisation de Cpanel:
Cpanel-> Cron Jobs-> Intervalle de temps de vente (*/10 * * * *)
Ajouter une commande dans la zone de texte:
curl -s "http://localhost:8983/solr/dataimport?command=full-import"
-s signifie silence (pas de sortie)
Vous avez terminé

5
Hassan Kazem

Pour le serveur blueHost et Godaddy:

curl -s "http://localhost:8983/solr/dataimport?command=full-import"
0
kalai