无法让 cronjob 正常工作

无法让 cronjob 正常工作

我在 ubuntu 16.04 digital ocean 上运行 cronjob 时遇到了麻烦。

我编写了一个 Python 蜘蛛程序,希望它每 5 分钟运行一次。为了运行这个蜘蛛程序,我编写了一个脚本 runmyspider.sh (chmod +x),命令如下:

scrapy runspider aspider.py

现在我想通过 Cron 调用这个脚本。

*/5 * * * * sh /scripts/runmyspider.sh 2>&1 /scripts/spider.log

但是,蜘蛛从未运行(我可以看到数据库中没有任何变化,如果我手动执行文件,就会发生更改)

我在这里做错了什么?我之前多次设置了 cron,但这次似乎遇到了错误...

感谢您的所有建议!

答案1

  1. 始终使用绝对路径以避免出现问题。

/bin/sh(或 /usr/bin/?)

/usr/bin/scrapy(无论它在哪里,你都可以使用它which scrapy来查找二进制文件)

最重要的是为 scrapy 使用的 aspider.py 文件添加脚本路径,我猜可以吗/scripts/aspider.py

我的第一个猜测是 cron 正在运行,找到 sh,sh 找到 scrapy,但 scrapy 没有找到 py 文件。

  1. 不要覆盖日志文件,而是添加:

*/5 * * * * /bin/sh /scripts/runmyspider.sh >> /scripts/spider.log 2>&1

相关内容