Использование taskschedulerR на виртуальной машине - PullRequest
0 голосов
/ 05 июня 2019

Я хочу запланировать ежедневный запуск сценария R на виртуальной машине.Сценарий подключается к DWH, загружает данные и создает файл .CSV в той же папке.

Сначала я установил R и Rstudio на виртуальную машину, запустил свой сценарий вручную и все работало, как ожидалось.

Далее я использовал пакет taskchedulerR и запланировал работу.Когда сценарий запускается вместо создания CSV с данными, он создает файл .log, который содержит следующий текст:

Error in file(file, ifelse(append, "a", "w")) :cannot open the connection
Calls: write.csv -> eval.parent -> eval -> eval -> write.table -> file
In addition: Warning message:
In file(file, ifelse(append, "a", "w")) : cannot open file 'Test.csv': 
Permission denied
Execution halted

Ответы [ 2 ]

2 голосов
/ 05 июня 2019

Похоже, проблема с разрешениями пользователя. Скорее всего, пользователь, который запускает Rstudio Server, не имеет доступа на запись на вашей виртуальной машине. Когда вы запускаете сценарий вручную, вы вошли в систему как тот же пользователь, который выполняет сценарий планировщика задач?

Например, на моем удаленном сервере Shiny Server пользователь, реализующий сценарии, по умолчанию называется «блестящим». Следовательно, я должен дать «блестящему» пользователю права rwx на каталог скриптов.

Редактировать: Конечно, вы можете добавить планирование через системное задание (или eqv) вне среды Rstudio. В Linux предполагается, что у пользователя cron есть разрешения rwx в каталоге:

Rscript /path/to/script.R
0 голосов
/ 05 июня 2019

Я решил это, выполнив следующее:

  1. Открыл Rstudio как администратор, а затем запланировал скрипт с помощью taskcheduler

  2. Указана папка вывода CSV с помощью //, например, write.csv(DF, file = "C://Users//myusername//Desktop//myscripts//Test.csv")

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...