我正在尝试创建一个cronjob,我跟踪了多个教程并搜索了Stackoverflow,但我认为我犯了一个错误,因为它不起作用。
在Ubuntu 14下,这是在我的用户帐户Cronjob文件中
* 16 * * * cd work/homefolder/homefolder && scrapy crawl scrape1
使用:
grep CRON /var/log/syslog
我可以看到cron作业正在运行,但它不执行命令。我也是
看不出哪里出了问题。
只需在终端输入就行了
cd
cd work/homefolder/homefolder && scrapy crawl scrape1
文件夹的整个路径是
/home/NAMEOFUSER/work/homefolder/homefolder
有人知道为什么不起作用,或者我在哪里能找到哪里出了问题吗?
谢谢你
最佳答案
您需要在cronjob文件中包含绝对路径,而不是相对路径。
尝试* 16 * * * cd /home/NAMEOFUSER/work/homefolder/homefolder && scrapy crawl scrape1
但我宁愿准备一个脚本,为您完成工作(包括更改目录),并直接调用它:* 16 * * * /home/NAMEOFUSER/work/homefolder/homefolder/scrape.sh
scrape.sh
的内容可以如下所示:
!#/bin/sh
cd /home/NAMEOFUSER/work/homefolder/homefolder && scrapy crawl scrape1
确保更新您的权限,以便cron demon具有访问权限。
此外,在Ubuntu上编辑cronjobs的首选方法是运行
crontab -e