Linux 如何调试执行脚本的cron作业,但脚本似乎没有完成?
我有一个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确实被
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作业通常会获得与交互式shell不同的shell环境,因此您的路径中可能缺少scrapy,您应该使用/some/full/PATH/to/scrapy 如果这不起作用,请尝试将stdout和stderr重定向到一些文件,以便查看输出是什么
是否可能在搜索路径中找不到
scrapy
命令?如果您使用完整路径,它可能会起作用。奇怪地将cron输出重定向到日志并没有显示任何内容(我使用的是&>
),但解决了路径问题。谢谢。:)