Para evitar ter que digitar o caminho absoluto para um comando, os shells introduziram a $PATHvariável de ambiente, cada diretório é separado por a :e as pesquisas são feitas da esquerda para a direita. crongeralmente limpa todo o ambiente, incluindo essa $PATHvariável. Portanto, o script pode se comportar de maneira diferente no seu cron em comparação com o comportamento no shell.
Use caminhos absolutos
Execute which db2como db2inst1usuário para obter o caminho completo do db2programa. Se a saída for /usr/bin/db2, seu comando cron seria semelhante a:
/usr/bin/db2 connect to myDB2
Defina a variável PATH
Execute echo "$PATH"como db2inst1usuário para obter a $PATHvariável e verifique se ela também está disponível no seu script cron. Por exemplo, se a saída fosse /usr/local/bin:/usr/bin:/bin, você colocaria a próxima linha na parte superior do seu script de shell:
export PATH="/usr/local/bin:/usr/bin:/bin"