2016-06-07 14 views
0

Der Code in crontab 0 * * * * cd /home/scrapy/foo/ && scrapy crawl foo >> /var/log/foo.logcron konnte nicht laufen Scrapy

Er scheiterte das Crawling laufen, da es keine Log-in meiner Protokolldatei war. Ich testete mit 0 * * * * cd /home/scrapy/foo/ && pwd >> /var/log/foo.log, es echote "/ home/scrapy/foo" im Protokoll.

Ich versuchte auch PATH=/usr/local/bin und PATH=/usr/bin, aber kein Erfolg.

Ich kann es manuell ausführen, indem Sie cd /home/scrapy/foo/ && scrapy crawl foo in der Befehlszeile eingeben.

Irgendwelche Gedanken? Vielen Dank.

Antwort

0

Problem gelöst. Anstatt den Crawl als root auszuführen, verwenden Sie crontab -u user -e, um eine Crontab für user zu erstellen, und führen Sie als user.

-1

Sie sollten Protokollierungsmodul verwenden (https://docs.python.org/2/library/logging.html,) nicht Umleitung. (Wenn Sie Modul verwenden Anmeldung können Sie behandeln Pfad log und log level)

und versuchen, diesen Code in crontab

0 * * * * /usr/bin/python2.7 /your/file/path/filename 

(oder scrapy .. was auch immer Sie wollen)

+0

Es ist hier irrelevant. 'cron' wird alle Nachrichten, die in der Befehlszeile ausgedruckt werden, in' foo.log' setzen – Harrison