为什么RScript在RStudio上运行正常但在终端上运行crontab作业时会出错?
我试图在RScript上运行crontab作业以每分钟收集数据(* * * * *)。在RStudio上运行时,RScript工作正常但是在运行crontab时,我收到以下错误:
/Users/xx/Capstone_2/Get_Data.R: line 3: syntax error near unexpected token `'/Users/xx/Capstone_2/Data''
/Users/xx/Capstone_2/Get_Data.R: line 3: `setwd('/Users/xx/Capstone_2/Data')'
以下是我在crontab -e
上运行的内容:
* * * * * /Users/xx/Capstone_2/Get_Data.R
这是RScript:
setwd('/Users/xx/Capstone_2/Data')
library(twitteR)
setup_twitter_oauth('consumer-key', 'consumer-secret',
'access-token','access-secret')
iphonex <- searchTwitter("iphonex", n=1000)
iphonex <- twListToDF(iphonex)
write.csv(iphonex, '/Users/xx/Capstone_2/Data/iphonex.csv')
答案 0 :(得分:0)
如果您向我们展示了所有/Users/xx/Capstone_2/Get_Data_Test.R
文件,那么问题是shell不知道您要通过R运行它。您需要添加
#!/usr/bin/Rscript
作为第一行。
答案 1 :(得分:0)
步骤1:
使用以下命令检查(在终端中)Rscript的安装位置:
which Rscript
第2步:
根据第1步的路径(例如),在R脚本中调整shebang行:
#!/usr/bin/Rscript
第3步:
让crontab处理对具有R脚本的目录的更改。
* * * * * cd /Users/xx/Capstone_2/ && /usr/bin/Rscript Get_Data.R