Скрипт действует по-разному при запуске cron

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

Я добавил свой путь вручную в начало кронтаба и добавил строку

. ~/.bash_profile

в начале скрипта. Что еще может произойти?

4
задан shellter
15.02.2023 21:35 Количество просмотров материала 2677
Распечатать страницу

1 ответ

по крайней мере, ты попытался.

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

set > /tmp/myEnvrionrment.$$

сразу после

. ~/.bash_profile

edit

(том .$$ переменная, добавленная к имени файла / tmp, является переменной оболочки для "текущего идентификатора процесса" и, следовательно, является относительно уникальным номером, что должны быть разные для каждого раз, когда вы запускаете ваш скрипт.J)

запустить скрипт из командной строки, затем из cron

затем

diff /tmp/myEnvrionemnt.*

предполагая, что там только два файла, в противном случае, посмотрите на метки времени на этих файлах и удалите другие, чтобы у вас было только 2 файла, 1 из которых представляет запуск командной строки, а другой из запуска crontab.

as set показывает локальные переменные (которые должны включать экспортированные переменные), это должно работать. Если вы получаете одинаковые списки в обоих выходных файлах набора, а затем попробуйте

export > /tmp/myExportedVars.$$

как и выше, и попробовать сравниваете их.

посмотрите не только на PATH, но и на LD_* vars и LANG vars.

IHTH

2
отвечен shellter 2023-02-17 05:23

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх