以下是我想每分钟运行的非常简单的Rscript,称为test.R
print("Hello, World!")
并且,我希望自动执行此脚本,以期将来可以对脚本执行相同的操作。我使用crontab -e
调用并添加以下内容:
* * * * * Rscript home/<username>/test.R
无法产生任何结果。
[根据cron job to execute r script not working和Schedule a Rscript crontab everyminute的示例,我对crontab代码进行了以下更改
* * * * * Rscript "home/<username>/test.R"
* * * * * usr/bin/Rscript home/<username>/test.R
* * * * * usr/bin/Rscript "home/<username>/test.R"
* * * * * cd home/<username>/ && Rscript test.R
* * * * * cd home/<username>/ && usr/bin/Rscript test.R
所有这些都不做。我还创建了一个名为myScript.sh
的脚本,其中包含Rscript /home/<username>/test.R
,并尝试将所有任务* * * * * home/<username>/myScript.sh
分配给所有无效。
我已经确保先运行chmod +x
以使我的文件可执行,而只需键入Rscript test.R
即可产生我想要的结果。
我还可以做些什么来使这项工作?运行Ubuntu Server 18.04和运行台式机版本时是否存在一些问题?
我已经运行了上述所有变体,在/
和home
之前加了usr
。我也切换到尝试~/test.R
,但仍然没有结果。
是否有可能正常运行并且未捕获结果? Cron不会将结果返回到活动终端。
以下内容在Ubuntu Server 16.04上为我工作
首先,从Rscript终端运行时,确认返回了测试脚本:
root@mytester:~/myrscripts# Rscript test.R
返回
[1] "Hello, World!"
第二,通过以下步骤设置cron作业:
crontab -e
输入此行
* * * * * Rscript ~/myrscripts/test.R >> ~/mycronlog.log
注意,我正在将结果传递到日志(追加)
几分钟后再次检查日志:
root@mytester:~# cat mycronlog.log
[1] "Hello, World!"
[1] "Hello, World!"
[1] "Hello, World!"
[1] "Hello, World!"
[1] "Hello, World!"