2016-12-21 16 views
1

Я пытаюсь создать команду cron, которая будет использовать R markdown, чтобы создать новую страницу html через определенные промежутки времени. Я обнаружил, что это проблема pandoc.Pandoc при использовании R markdown с командой cron

я получаю следующее сообщение об ошибке, когда я вхожу мою команду хрон

Error: pandoc version 1.12.3 or higher is required and was not found (see the help page ?rmarkdown::pandoc_available). Execution halted

Есть простой бит кода я могу добавить в .Rmd файл, чтобы указать его pandoc при выполнении команды хрон ?


Сохранение оригинального сообщения. Это ниже этого абзаца.

Все, что я хочу сделать, это файл под названием test_doc.Rmd.

Когда я запускаю следующую команду в командной строке, она успешно работает:

RScript -e "library(rmarkdown); render(\"/path/test_doc.Rmd\")" 

Однако, когда я бегу, что в кронтаб, я не имею никакого успеха. Я использую версию этого:

25  10  *  *  *  RScript -e "library(rmarkdown); render(\"/path/test_doc.Rmd\")" 

Я сбит с толку. Я не думаю, что это проблема с файловым файлом, так как у меня есть другие R-скрипты (не rmarkdown), запущенные в crontab и работающие. Я на Mac OS X 10.10.5

ответ

1

Попробуйте

25 10 * * * cd /path && Rscript -e 'rmarkdown::render("test_doc.Rmd")' 

, который избегает

  1. Полный путь и дает rmarkdown и knitr лучший вариант рабочей директории
  2. Необходимость в «кавычки цитаты «с помощью апострофов снаружи и стандартных двойных кавычек внутри.
+0

Я до сих пор не получает эту работу в кронтабе (это делает в терминале). Могла ли это проблема с разрешениями? Или вопрос с пакетами? –

+0

Вы используете '/ etc/crontab' или для пользователя crontab? Я всегда начинаю с «touch/tmp/BeenHereNowDeleteMe.txt» или некоторых таких и создаю оттуда. –

+0

Я был на пользователя crontab. –

0

Добавьте путь к началу вашего хрон, и перенаправить вывод для отладки:

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin 

*/5 * * * * cd /path/to/script/ && Rscript -e 'library(rmarkdown); rmarkdown::render("your_script.Rmd")' >/path/to/script/cron.log 2>/path/to/script/cronerr.log 

 Смежные вопросы

  • Нет связанных вопросов^_^