Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 如何调试执行脚本的cron作业,但脚本似乎没有完成?_Linux_Ubuntu_Cron_Scheduling_Scrapy - Fatal编程技术网

Linux 如何调试执行脚本的cron作业,但脚本似乎没有完成?

Linux 如何调试执行脚本的cron作业,但脚本似乎没有完成?,linux,ubuntu,cron,scheduling,scrapy,Linux,Ubuntu,Cron,Scheduling,Scrapy,我有一个cron作业scrap.sh,看起来像这样: #!/bin/bash touch rage cd /etc/myproject/scraper scrapy crawl foosite --set FEED_URI=../feeds/foosite.xml --set FEED_FORMAT=xml scrapy crawl barsite --set FEED_URI=../feeds/barsite.xml --set FEED_FORMAT=xml 当它执行文件时,rage确实被

我有一个cron作业
scrap.sh
,看起来像这样:

#!/bin/bash
touch rage
cd /etc/myproject/scraper
scrapy crawl foosite --set FEED_URI=../feeds/foosite.xml --set FEED_FORMAT=xml
scrapy crawl barsite --set FEED_URI=../feeds/barsite.xml --set FEED_FORMAT=xml
当它执行文件时,rage确实被创建,并且从我的系统日志判断,它确实以root用户身份运行,因此权限不应该是一个问题

May  6 17:35:01 server CRON[10233]: (root) CMD (/etc/myproject/scraper/scrape.sh)
May  6 17:40:01 server CRON[17804]: (root) CMD (/etc/myproject/scraper/scrape.sh)
当我运行
scrape.sh
时,它会按预期执行,并将
foosite.xml
文件放入
。/feeds
目录中,当cron作业启动时,该目录存在且为空。我能做些什么来解决这个问题

  • 如果我要猜问题的话 这是一个环境问题(例如:。 scrapy不在路径中)
  • 要进行调试,请确保cron作业正在将标准输出和标准错误发送到日志文件和/或syslog

  • 可能找不到scrapy命令?Cron作业通常会获得与交互式shell不同的shell环境,因此您的路径中可能缺少scrapy,您应该使用/some/full/PATH/to/scrapy

    如果这不起作用,请尝试将stdout和stderr重定向到一些文件,以便查看输出是什么


    是否可能在搜索路径中找不到
    scrapy
    命令?如果您使用完整路径,它可能会起作用。奇怪地将cron输出重定向到日志并没有显示任何内容(我使用的是
    &>
    ),但解决了路径问题。谢谢。:)