Назад | Перейти на главную страницу

Проблемы с запуском этого простого задания cron на сервере каждые 24 часа. Что случилось?

Попытка запускать сценарий «R» в 00:30 каждый день. Скрипт находится в /home/username/Desktop/folder/runnow.r и which Rscript показывает, что абсолютный путь к двоичному Rscript равен /usr/bin/Rscript. Запись crontab, которую я сделал, использовала crontab -e команду, а затем вставив строку:

38 14 * * * /usr/bin/Rscript /home/username/Desktop/folder/runnow.r

Сейчас, конечно, 14:36. И я жду 5 минут, чтобы увидеть, создан ли CSV-файл в моей домашней папке. Так как сценарий R runnow.r содержит инструкции для обработки некоторых данных и создания файла CSV в домашней папке.

Но в моей домашней папке нет CSV-файла. Когда я вручную запускаю этот сценарий (без использования cron), он создает CSV-файл в моей домашней папке. Так что я знаю, что со сценарием все в порядке. Я везде использую абсолютные пути, и я даже попытался перезапустить crond, используя service crond restart. Однако не повезло. Это проблема привилегий? У crond недостаточно прав для создания CSV в моей домашней папке?

РЕДАКТИРОВАТЬ: НОВОЕ НАБЛЮДЕНИЕ

Если я изменю строку на * * * * * /usr/bin/Rscript /home/username/Desktop/foldername/runme.r вместо того, чтобы указывать точное время, он создает правильный CSV-файл в нужном месте. Так * * * * * работает и 54 13 * * * нет. Зачем?

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