使用R Markdown运行bash脚本作为Cron作业

我想尝试如何从R markdown文件,但从作为Cron作业运行的bash脚本呈现HTML。 我不知道为什么一切工作正常,除了作为克伦工作。 我做的事:

我的脚本是Rstudio的演示脚本

--- title: "test" author: "sms" date: "24 maja 2015" output: html_document --- This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see <http://rmarkdown.rstudio.com>. When you click the **Knit** button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document. You can embed an R code chunk like this: ```{r} summary(cars) ``` etc. 

这个脚本在Rstudio中没有任何问题。

接下来我尝试从terminal运行一个Rmd脚本:

 Rscript -e "require( 'rmarkdown' ); render('/home/sms/Dokumenty/R/test.Rmd', 'html_document')" 

没有任何问题。 有用。

所以我创build了bash脚本

 #!/bin/bash 

('/ home / sms / Dokumenty / R / test.Rmd','html_document')“

并更改了chmod 755 test.sh

也像一个魅力。

但是,当把Cron文件(pipe理员和用户):

 28 18 * * * sh /home/sms/Dokumenty/R/test.sh 

它不起作用

任何想法我做错了什么?

我有同样的问题。 这个问题是因为我以root身份运行Rscript,但是Rscript应该以当前用户的身份运行。 为了解决这个问题,我编辑了用户souza“sudo crontab -u souza -e”的crontab,并且Rscript作为souza而不是root来运行。 现在它正在工作

简化,简化,简化。

首先,我将它作为一个RScript,也许称为renderTest.R

 #!/usr/bin/Rscript library(rmarkdown) setwd("/home/sms/Dokuments/R") render("test.Rmd") # I usually use default arguments 

其次,使脚本可执行( chmod 0755 renderTest.R )。

三,测试脚本。 如果你可以像你一样运行它,那么你也应该运行一个cron作业。

第四,添加cronjob运行,因为有相同的权利。

编辑我只是修复了我从你抄来的错字: Documents/ not Documenty/

我有同样的问题。

但是,如果你尝试使用knitr :: knit2html而不是使用rmarkdown :: render,它将会起作用

理解为什么