我一直在尝试通过使用 cronjob 来让一个非常简单的 R 脚本 (RScript) 每分钟运行一次;我在 Ubuntu 16.04 服务器上。R 脚本从 1 .csv 中读取 0-59 之间的整数,将其加 1,然后将其写入输出 .csv。因此有三个文件:
- simpleRScript.R
- 输入.csv
- 输出.csv
simpleRScript.R
# simpleRScript.R
temp_output <- read.csv("output.csv", stringsAsFactors = FALSE, header = TRUE)
input <- read.csv("input.csv", stringsAsFactors = FALSE, header = TRUE)
output <- input$value[which(input$value == temp_output$value[1])+1]
if(output == 60, output <- 0)
write.csv(output, file = "output.csv", row.names = FALSE)
输入.csv
value,
0,
1,
2,
...,
59
输出.csv
value,
0
我将这三个文件存储在 cronTest 文件夹中,如下所示:
/home/ubuntu/cronTest
然后在命令行中我执行以下操作:
#
crontab -e
然后在底部我输入:
* * * * * RScript /home/ubuntu/cronTest/simpleRScript.R
那么为什么当我输入:
less output.csv
我怎么没有看到每分钟增加的值呢?
感谢您帮助我设置我的第一个 RScript cronjob!
答案1
答案(感谢steeldriver的评论)
将 cronjob 命令更改为
* * * * * cd /home/ubuntu/cronTest/ && /usr/lib/R/bin/Rscript simpleRScript.R
对于 R 用户,ubuntu 16.04 LTS 上安装的 Rscript 命令是 /usr/lib/R/bin/Rscript