我如何运行一个命令,就像在一项需要在特定文件夹中才能运行该命令的作业scrapy crawl empt.com
中一样cron
,例如:
/downloads/my_crawler/empt/empt/
然后命令scrapy crawl empt.com
我当前的crontab
条目如下所示:
0 */2 * * * * root /downloads/my_cralwer/empt/empt/ scrapy crawl empt.com
谢谢!
答案1
尝试:
0 */2 * * * * root cd /downloads/my_cralwer/empt/empt/ && scrapy crawl empt.com
答案2
每天早上 5 点,在我的 scrapy crawl 中添加以下几行代码crontab -e
。这是 crocs 答案的略微修改版本
PATH=/usr/bin
* 5 * * * cd project_folder/project_name/ && scrapy crawl spider_name
如果不设置PATH
,cron 会给我一个错误“ command not found: scrapy
”。我猜这是因为/usr/bin
在 Ubuntu 中存储了运行程序的脚本。
请注意,我的 scrapy 项目的完整路径是/home/user/project_folder/project_name/
。我env
在 cron 中运行了该命令,并注意到密码是/home/user
。因此我跳过了/home/user/
上面crontab
的内容
cron 日志在调试时很有用
grep CRON /var/log/syslog
答案3
我知道这是一篇旧帖子,但为了让我的工作正常,我还需要添加一个路径变量。否则 cron 可能无法找到 scrapy。对我来说,它是:
PATH=/usr/local/bin
只需找到 scrapy 二进制文件并将路径变量添加到文件中 cronjob 之前的位置。我通常用它crontab -e
来编辑 cronjob 列表。但像 webmin 这样的实用程序也可以做到这一点。