Чтобы избежать необходимости вводить абсолютный путь к команде, оболочка ввела $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"