Чтобы избежать необходимости вводить абсолютный путь к команде, оболочка ввела $PATH
переменную среды, каждый каталог отделяется знаком a, :
и поиск выполняется слева направо. cron
часто очищает всю среду, включая эту $PATH
переменную. Поэтому скрипт может вести себя по-другому в вашем cron по сравнению с поведением в оболочке.
Используйте абсолютные пути
Запустите which db2
как db2inst1
пользователь, чтобы получить полный путь к db2
программе. Если вывод /usr/bin/db2
, ваша команда cron будет выглядеть так:
/usr/bin/db2 connect to myDB2
Установите переменную PATH
Запустите echo "$PATH"
как db2inst1
пользователь, чтобы получить $PATH
переменную и убедиться, что эта переменная также доступна в вашем скрипте cron. Например, если вывод был /usr/local/bin:/usr/bin:/bin
, вы бы поместили следующую строку в верхней части вашего сценария оболочки:
export PATH="/usr/local/bin:/usr/bin:/bin"
Вы должны определить, что такое db2 и myDB2 , в противном случае используйте абсолютное местоположение файла или приложения , которое хотите запустить.
Пример:
источник