Вы должны указать полный путь в вашем crontab
.Это самый безопасный вариант.
Если вы не хотите этого делать, вы можете поместить в свои программы скрипт-обертку и установить туда PATH.
например,
01 01 * * * command
становится:
01 01 * * * /full/path/to/command
Кроме того, все, что вызывается из cron
, должно быть очень осторожным с программами, которые оно запускает, и, вероятно, установить свой собственный выбор для переменной PATH
.
EDIT:
Если вы не знаете, где находится команда, которую вы хотите выполнить which <command>
из вашей оболочки, и она укажет вам путь.
EDIT2:
Таким образом, после запуска вашей программы первое, что она должна сделать, - установить PATH
и любую другую обязательную переменную (например, LD_LIBRARY_PATH
) на значения, необходимые длясценарий для запуска.
По сути, вместо того, чтобы думать, как изменить среду cron, чтобы сделать ее более подходящей для вашей программы / сценария - заставьте ваш сценарий обрабатывать заданную среду, задавая соответствующую при запуске.