首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将刮擦设置为cron作业时出错:“刮伤:未找到”

将刮擦设置为cron作业时出错:“刮伤:未找到”
EN

Ask Ubuntu用户
提问于 2020-07-13 04:49:12
回答 3查看 821关注 0票数 1

我想设置一个cron作业,以运行我的scrapy (python脚本)

我就是这样运行脚本的,它运行得很好:

代码语言:javascript
复制
ubuntu@ip-1-2-3-4-:cd /home/ubuntu/scrapers/my_scraper/
ubuntu@ip-1-2-3-4-:~/scrapers/my_scraper$ scrapy crawl my_spider

现在,我尝试以cron作业的形式运行上面的命令:

代码语言:javascript
复制
sudo crontab -e

增加了以下几行:

代码语言:javascript
复制
PATH=/home/ubuntu/.local/bin/
35 14 * * * cd /home/ubuntu/scrapers/my_scraper && scrapy crawl my_spider

这不成功..。我也不能诊断出问题..。如果我跑:

代码语言:javascript
复制
grep CRON /var/log/syslog

我得到以下输出:

代码语言:javascript
复制
Jul 12 06:47:01 ip-1-2-3-4 CRON[1451]: (root) CMD (test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly ))
Jul 12 07:17:01 ip-1-2-3-4 CRON[1825]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Jul 12 08:17:01 ip-1-2-3-4 CRON[1836]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Jul 12 09:17:01 ip-1-2-3-4 CRON[1849]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Jul 12 10:17:01 ip-1-2-3-4 CRON[1861]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Jul 12 11:17:01 ip-1-2-3-4 CRON[1869]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Jul 12 12:17:01 ip-1-2-3-4 CRON[1878]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Jul 12 13:17:01 ip-1-2-3-4 CRON[1887]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Jul 12 14:17:01 ip-1-2-3-4 CRON[1962]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Jul 12 15:17:01 ip-1-2-3-4 CRON[1970]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Jul 12 16:17:01 ip-1-2-3-4 CRON[1982]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Jul 12 17:17:01 ip-1-2-3-4 CRON[1991]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Jul 12 18:17:01 ip-1-2-3-4 CRON[2002]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Jul 12 19:17:01 ip-1-2-3-4 CRON[2010]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Jul 12 20:05:01 ip-1-2-3-4 CRON[2018]: (root) CMD (   test -x /etc/cron.daily/popularity-contest && /etc/cron.daily/popularity-contest --crond)
Jul 12 20:17:01 ip-1-2-3-4 CRON[2022]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Jul 12 21:17:01 ip-1-2-3-4 CRON[2031]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Jul 12 22:17:01 ip-1-2-3-4 CRON[2039]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Jul 12 23:17:01 ip-1-2-3-4 CRON[2047]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Jul 13 00:17:01 ip-1-2-3-4 CRON[2156]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Jul 13 01:17:01 ip-1-2-3-4 CRON[2465]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Jul 13 02:17:01 ip-1-2-3-4 CRON[2549]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Jul 13 03:17:01 ip-1-2-3-4 CRON[2980]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Jul 13 04:17:01 ip-1-2-3-4 CRON[3033]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)

这很奇怪,因为最近的一行是今天早上4点(当地时间是下午2点),所以也不确定为什么没有记录错误?

注意:/home/ubuntu/.local/bin/是刮伤的地方(我使用命令which scrapy找到了它)

更新(时区问题)

我没有收到任何错误的原因是我的时区错误,在修复时区之后,我得到了以下错误:

刮伤:找不到

我还尝试使用run scper.sh:

代码语言:javascript
复制
#!/bin/bash

cd /home/ubuntu/scrapers/my_scraper
PATH=$PATH:/usr/bin/python3
export PATH
/home/ubuntu/.local/bin/scrapy crawl my_spider

我测试了从控制台运行上面的shell脚本,它可以工作,然后我将它作为cron作业添加,但结果仍然相同:

代码语言:javascript
复制
sudo crontab -e

增加了以下内容:

代码语言:javascript
复制
39 16 * * * ./home/ubuntu/scrapers/shell-scripts/run-my-scraper.sh

但还是刮伤了:没有发现错误。

EN

回答 3

Ask Ubuntu用户

发布于 2020-07-13 05:05:11

35 14 ** cd /home/ubuntu/铲运机/my_scraper && scrapy抓取my_spider

也许可以尝试删除cd命令。

票数 1
EN

Ask Ubuntu用户

发布于 2020-07-13 06:23:55

in newscript.sh #!/bin/bash ubuntu 必要时设置PATH= .由于您将cronjob设置为sudo /home/ubuntu/scrapers/my_scraper/ scrapy爬行my_spider

您说的the部件已经起作用了^

在crontab 35 14 ** /home/blahblah/newscript.sh中

...bottom行,制作一个工作脚本,调用cron作业中的脚本.确保它是可执行的。

票数 1
EN

Ask Ubuntu用户

发布于 2020-07-13 09:03:55

我的时区出了问题..。我的服务器被设置为UTC,我用澳大利亚时间设置cron作业,这就是我看不到任何错误消息的原因。

修复完时区后,以下内容对我起了作用(感谢@Stephen的评论,他指出我需要使用完整的路径进行刮擦):

crontab -e

代码语言:javascript
复制
PATH=/usr/local/bin
56 18 * * * cd /home/ubuntu/scrapers/my_scraper && /home/ubuntu/.local/bin/scrapy crawl my_spider 
票数 0
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1258627

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档