在RStudio中运行cron作业
我正试图通过EC2实例上的RStudio计划一个cron作业。在RStudio中运行cron作业,r,cron,rstudio,R,Cron,Rstudio,我正试图通过EC2实例上的RStudio计划一个cron作业。 当我使用带有非常基本函数的基本脚本时,它工作得很好。 但是,当我想要调度一个包含specfic R包中的R函数的脚本时,脚本会失败 我的cron看起来像这样: MAILTO="myemail@adress.com" 36 * * * * /home/user1/Test_for_Cron.R 启动脚本后,我收到一封来自Cron守护进程的电子邮件,指定如下内容: R\u函数中出现错误: 找不到函数R\u函数 停止执行 根据我的发现,
当我使用带有非常基本函数的基本脚本时,它工作得很好。 但是,当我想要调度一个包含specfic R包中的R函数的脚本时,脚本会失败 我的cron看起来像这样:
MAILTO="myemail@adress.com"
36 * * * * /home/user1/Test_for_Cron.R
启动脚本后,我收到一封来自Cron守护进程的电子邮件,指定如下内容:
R\u函数中出现错误:
找不到函数R\u函数停止执行 根据我的发现,似乎我必须指定我要在RStudio中运行脚本,或者我要“源”它。
我觉得答案可能是以下3篇文章的组合,但在测试了一些建议后,我没有找到解决方案:
非常感谢您的帮助 您误解了
cron
和shell命令的工作原理——R文件是不可执行的(除非您对其进行更改,请参见下文)
但是如果您只是在它前面加上Rscript
,您就可以
1.在shell中测试它,直到它工作为止
2.由cron
执行
36 * * * * Rscript /home/user1/Test_for_Cron.R
编辑:如果执行以下两项操作,则可以使其可执行:
- 添加一个
行shebang
(或指向#/usr/bin/Rscript
的任何路径)Rscript
- 通过chmod 755 Test\u for_Cron.R将模式更改为可执行模式,该模式为您(所有者)设置读/写/执行,为组和其他人设置读/执行
Rscript
,您就可以
1.在shell中测试它,直到它工作为止
2.由cron
执行
36 * * * * Rscript /home/user1/Test_for_Cron.R
编辑:如果执行以下两项操作,则可以使其可执行:
- 添加一个
行shebang
(或指向#/usr/bin/Rscript
的任何路径)Rscript
- 通过chmod 755 Test\u for_Cron.R将模式更改为可执行模式,该模式为您(所有者)设置读/写/执行,为组和其他人设置读/执行
- 谢谢你,德克。
是的,我已经添加了
#/将usr/bin/Rscript
添加到我的脚本中。
问题实际上来自一个简单的事实,即一些库没有加载到我的脚本中,从而导致错误并停止脚本。
现在,所有库都已加载,工作正常 谢谢你,德克。
是的,我已经添加了#/将usr/bin/Rscript
添加到我的脚本中。
问题实际上来自一个简单的事实,即一些库没有加载到我的脚本中,从而导致错误并停止脚本。
现在,所有库都已加载,工作正常 也许可以尝试通过打印Sys.info()来启动脚本,以检查cron是否找到了正确的R二进制文件(和库)-我有类似于此问题的smthg+问题是cron找到了错误版本的RWhen I do Sys.info()我没有看到任何关于R库hoops的信息,请尝试
.libpath()
和R.version
--这会有相关的信息,也许可以尝试通过打印Sys.info()来启动脚本,以检查cron是否找到了正确的R二进制文件(和库)-我有过类似此问题的smthg+问题是当我执行Sys.info()时,cron找到了错误的rw版本我没有看到关于R库hoops的任何信息,请尝试.libpath()
和R.version
——这将包含相关信息