【问题标题】:Rscript in Crontab not running in Ubuntu Server 18.04Crontab 中的 Rscript 未在 Ubuntu Server 18.04 中运行
【发布时间】:2020-03-09 20:59:51
【问题描述】:

以下是我想要每分钟运行一次的名为test.R 的非常简单的 Rscript

print("Hello, World!")

我想自动化这个脚本,希望我可以为未来的脚本做同样的事情。我使用crontab -e 调用并添加以下内容:

* * * * * Rscript home/<username>/test.R

没有产生任何结果。

根据cron job to execute r script not workingSchedule 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/&lt;username&gt;/test.R,并尝试将任务* * * * * home/&lt;username&gt;/myScript.sh 全部分配无济于事。

我已确保预先运行 chmod +x 以使我的文件可执行,并且只需键入 Rscript test.R 即可产生我想要的结果。

我还能做些什么来完成这项工作?我运行 Ubuntu Server 18.04 与运行桌面版本有什么问题吗?

更新

我已经运行了所有上述变体,/homeusr 之前。我也转而尝试~/test.R,但仍然没有结果。

【问题讨论】:

  • home 前面加上一个斜线,即改成/home/&lt;username&gt;/test.R 或同样的~/test.R
  • 我尝试了您的建议,并更新了我的问题以反映这一点。它仍然无法正常工作。每当我更新 cron 作业时,我是否必须运行某种命令?
  • 这是基本的 Unix,这里会有数百个几乎相同的问题,还有 unix stackexchange 站点和 sysadmin stackexchange 站点。执行date &gt; /tmp/filestamp.txt,然后您会看到它何时运行。从那里开始。

标签: r cron ubuntu-18.04 ubuntu-server rscript


【解决方案1】:

是否有可能它运行正常并且没有捕获结果? 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!"

【讨论】:

  • 我完全间隔,我必须将输出分配给一个文件。这在需要运行我的 Rscript 时也能成功运行。
猜你喜欢
  • 2019-06-06
  • 1970-01-01
  • 2019-12-14
  • 2020-07-05
  • 2014-04-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多