У меня есть сценарий 'R', который я хочу запускать в 00:30 каждый день, то есть в 12:30 каждый день. Сам скрипт находится в ~/Desktop/foldername/runme.r и which Rscript сообщает мне, что точный путь к двоичному Rscript - это /usr/bin/Rscript . Поэтому я делаю следующую запись в crontab:

crontab -e
54 13 * * * /usr/bin/Rscript ~/Desktop/foldername/runme.r

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

Но не повезло. В 13:54 файл CSV не создается в моей домашней папке. Обратите внимание , что , когда я вручную запустить этот скрипт (без использования хрон), это создать CSV в моей домашней папке. Так что я знаю, что с моим сценарием все в порядке. Так почему же cronjob работает не так, как задумано, и что я могу сделать, чтобы исправить его, или как проверить файлы журналов на наличие дополнительных источников информации?

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

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

1 ответ1

2

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .