2017-03-19 2 views
1

J'essaye de mettre en place un crontab pour gratter quelque chose. Jusqu'à présent, je l'ai écritMise en place d'un crontab pour scrapy

23 18 * * * cd PycharmProjects/untitled/Project1 && scrapy crawl xx -o test.csv 

Mais quand je fais ce que je reçois ceci:

/bin/sh: scrapy: command not found. 

Que dois-je faire?
J'ai essayé de localiser le scrapy dans mon mac mais je n'ai pas pu le trouver. Mais je suis capable de lancer la deuxième partie de la tâche crontab depuis le terminal.

+1

Vous n'avez pas le chemin complet dans votre param. De CD –

+0

@BipulJain Que voulez-vous dire? Devrais-je ajouter le dossier des araignées? Ou devrais-je trouver où est le scrapy? –

Répondre

2

Puisque crontab ne configure pas de variable PATH pour vous, il ne sait pas ce qu'est scrapy.

La façon facile de remédier est d'utiliser le chemin complet de scrapy:

$ which scrapy 
/usr/bin/scrapy 

Ensuite, utilisez qu'au lieu de simplement scrapy:

23 18 * * * cd PycharmProjects/untitled/Project1 && /usr/bin/scrapy crawl xx -o test.csv 

Une autre façon de le faire est de définir l'environnement PATH dans votre crontab:

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin 
# or your custom path, check your `.bashrc` for PATH you have set in your shell 
23 18 * * * cd PycharmProjects/untitled/Project1 && scrapy crawl xx -o test.csv 

Sidenote :
Aussi, il est très commun dans cron d'envelopper votre commande dans une sorte de script qui remplit le PATH et d'autres configurations et appelant ce script dans cron au lieu d'appeler les commandes directement.

+0

Note de côté: J'utilise Mac, d'où mon chemin de scrapy sort différent quand j'ai écrit «quel scrapy» –

+0

@ AliyarÖzercan Pourriez-vous poster l'ensemble du fichier crontab? L'erreur mentionne la commande "Applications" non trouvée mais elle n'est mentionnée nulle part dans votre texte. Aussi, vous devriez probablement utiliser le chemin absolu dans votre commande cd. par exemple. à partir de '/ home/user/myproject' – Granitosaurus

+0

@ AliyarÖzercan c'est un peu difficile à lire dans ce format, pourriez-vous poster en format original sur du pastebin? c'est-à-dire http://pastebin.ubuntu.com/ – Granitosaurus