Допустим, я хочу, чтобы мой компьютер вычислял мой возраст каждую минуту, поэтому я каждый день запускаю следующую задачу cron:
*/1 * * * * bash /path/to/birthCalc
birthCalc сам вызывает скрипт R, например:
#!/bin/bash
Rscript birthCalc.R
Теперь, это все работает, если я использую базу R с такими BirthCalc.R:
birthDay <- as.POSIXct ('1919-04-15', format = '%Y-%m-%d')
age <- floor ((as.numeric (Sys.time ()) - as.numeric (birthDay))/(365.25*60*60*24))
Однако, если я пытаюсь использовать следующий скрипт с использованием библиотеки lubridate, он больше не работает.
library ('lubridate')
birthDay <- as.POSIXct ('1919-04-15', format = '%Y-%m-%d')
age <- floor (lubridate::time_length (Sys.time () - birthDay, "years"))
Если я запускаю installed.packages ()
внутри задания cron, в списке появляется lubridate, поэтому я предполагаю, что задание cron должно найти библиотеку.У меня была эта проблема и с другими библиотеками, но в качестве примера я выбрал lubridate.
Сценарий завершается ошибкой только при запуске в качестве задания cron.Я могу запустить его из терминала bash или в интерактивном режиме в R. Я проверил, что cron использует те же Rscript и R, а также что пакеты доступны.Чего мне не хватает?
Я работаю:
R версия 3.4.4 (2018-03-15)
Платформа: x86_64-pc-linux-gnu (64-бит) с Ubuntu 16.04.5 LTS
lubridate_1.7.4
Большое спасибо, TTR