Crontab, не выполняющий задания Ubuntu 14.04

Я пытаюсь запустить скрипт удара как задание крона каждые 15 минут.

Простые вызовы сценария удара программа Java. Я сделал запись в crontab для петляния каждые 15 минут и сохранил его, но он ничего не сделает?

crontab-e

*/15 * * * * /home/marshell/graphite_cronjobs/Run_Cron_Read_Send_CapacityData_To_Graphite.sh

Run_Cron_Read_Send_CapacityData_To_Graphite.sh

java Cron_Read_Send_CapacityData_To_Graphite  >> Cron_Read_Send_CapacityData_To_Graphite.log
1
задан 17 September 2014 в 18:06

1 ответ

Здесь существует две возможных проблемы. В первую очередь, крон выполняет задания в специальной оболочке, которая не читает Ваш персональный $PATH. Если java не будет в /usr/bin или /bin, это не будет доступно крону. От man 5 crontab:

Несколько переменных среды настраиваются автоматически кроном (8) демон. SHELL установлен на/bin/sh и LOGNAME и ДОМОЙ установлен от/etc/passwd строки владельца crontab.
ПУТЬ установлен к "/usr/bin:/bin". ДОМАШНИЙ, SHELL и ПУТЬ могут быть переопределены настройками в crontab; LOGNAME является пользователем, которого работа выполняет от и не может быть сменена.

Так, используйте полный путь для java вместо этого. Следующий выпуск - то, что Ваш сценарий удара называет Java на файле с относительным путем. Это предполагает, что сценарий будет запущен из того же каталога как файл Java. Снова, дело обстоит не так. Так, всегда используйте полные пути для своих сценариев, если Вы хотите, чтобы они работали как ожидалось кроном:

/path/to/java /path/to/Cron_Read_Send_CapacityData_To_Graphite  >> /path/to/Cron_Read_Send_CapacityData_To_Graphite.log

, С другой стороны, можно установить $PATH в самом crontab:

PATH=$PATH:/opt/bin

*/15 * * * * /home/marshell/graphite_cronjobs/Run_Cron_Read_Send_CapacityData_To_Graphite.sh
1
ответ дан 11 November 2019 в 12:35

Другие вопросы по тегам:

Похожие вопросы: