所以我有一个R文件,我想安排每10分钟运行一次。我已经通过终端在crontab中创建了一个文件条目(使用crontab -e)。如此:
*/10 * * * * root /Users/A/Documents/code/r/r_file.r
当我在控制台中运行命令时,它按设计执行,我可以验证数据库中的记录。但是,通过这个cron设置,我没有得到最终结果。
我收到了以下错误消息:
/bin/sh: root: command not found
我确信这是一个完整的新手问题,因为我对crontab没有多少经验。任何意见是极大的赞赏。
谢谢,
杰森
答案 0 :(得分:2)
你的crontab行的“根”部分是什么让你搞砸了。当您使用crontab -e
时,不应指定用户,因为所有命令都以当前用户身份运行(即您在运行crontab -e
时登录的用户)。
此外,您应始终在crontab中使用完整路径。
cron行应该如下所示:
*/10 * * * * /path/to/Rscript /Users/A/Documents/code/r/r_file.r
答案 1 :(得分:1)
Rscript
是否在您的路径中?更重要的是,它是在运行commamd的用户的路径中,这里是root吗? (还要考虑像你一样运行命令。)
如果是,请尝试
*/10 * * * * yourlogin Rscript /Users/..../file.R
使用更简单的工作来测试您对crontab
的理解,该工作只存储时间戳,也许
*/10 * * * * yourlogin date > /tmp/testcrontab.txt
掌握完成后,运行一个简单的R脚本,然后转到真实的脚本。