Запустить задание cron в RStudio - PullRequest
0 голосов
/ 30 июня 2018

Я пытаюсь запланировать работу cron через RStudio на экземпляре EC2.
Когда я использую базовый скрипт с очень простыми функциями, он работает нормально. Но когда я хочу запланировать сценарий, содержащий функции R из специальных пакетов R, сценарии завершаются ошибкой.

Мой хрон выглядит так:

MAILTO="myemail@adress.com"
36 * * * * /home/user1/Test_for_Cron.R

После запуска скрипта я получаю электронное письмо от Cron Daemon, в котором указано что-то вроде:

Ошибка в R_function : не удалось найти функцию R_function
Исполнение остановлено

Из того, что я нашел, кажется, мне нужно указать, что я хочу запустить скрипт в RStudio или что я хочу его "найти".
Я чувствую, что ответ может быть в комбинации этих 3 постов ниже, но я не нахожу решение после тестирования некоторых предложений:

Проверьте, работает ли R в RStudio
Сбой задания Cron для сценария R
Команда R для установки рабочего каталога в расположение исходного файла в Rstudio

Помощь очень ценится!

Ответы [ 2 ]

0 голосов
/ 04 июля 2018

Спасибо, Дирк. Да, я уже добавил #!/usr/bin/Rscript к своему сценарию. На самом деле проблема возникла из-за того факта, что некоторые библиотеки не были загружены в мой скрипт, вызывая ошибки и останавливая скрипт. Теперь, когда все библиотеки загружены, все работает нормально!

0 голосов
/ 02 июля 2018

Вы неправильно понимаете, как работают cron и команды оболочки - файл R не является исполняемым (если вы не изменили его, см. Ниже).

Но если вы просто добавите префикс Rscript, вы можете 1. проверить его в своей оболочке, пока он не заработает 2. исполнить это cron так же

36 * * * * Rscript /home/user1/Test_for_Cron.R

Редактировать: Вы можете сделать его исполняемым, если сделаете две вещи:

  • добавить shebang строку #!/usr/bin/Rscript (или любой другой путь к Rscript)
  • изменить режим на исполняемый с помощью chmod 755 Test_for_Cron.R, который устанавливает чтение / запись / выполнение для вас (владельца) и чтение / выполнение для группы и других.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...