답변:
명령에 대한 절대 경로를 입력하지 않기 위해 쉘은 $PATH환경 변수를 도입했으며 , 각 디렉토리는 a로 구분되며 :검색은 왼쪽에서 오른쪽으로 수행됩니다. cron종종이 $PATH변수를 포함한 전체 환경을 지 웁니다 . 따라서 스크립트는 쉘의 동작과 비교하여 cron에서 다르게 동작 할 수 있습니다.
실행 which db2으로 db2inst1사용자하면 전체 경로 얻기 위해 db2프로그램을. 출력이 /usr/bin/db2인 경우 cron 명령은 다음과 같습니다.
/usr/bin/db2 connect to myDB2
실행 echo "$PATH"으로 db2inst1사용자하면 얻을 $PATH변수 및 확인이 변수가 너무 당신의 크론 스크립트에서 사용할 수 있습니다합니다. 예를 들어, 출력이 인 경우 /usr/local/bin:/usr/bin:/bin쉘 스크립트 맨 위에 다음 행을 넣습니다.
export PATH="/usr/local/bin:/usr/bin:/bin"
https://askubuntu.com/a/23438/227839 에 답변 된 PATH대로 쉘 스크립트에서 설정해야합니다 .
#!/bin/bash
PATH="/usr/local/bin:/usr/bin:/bin"
# rest of script follows
또는 crontab 파일에서 모든 cron 작업에 적용됩니다.
PATH="/usr/local/bin:/usr/bin:/bin"
0 1 * * * db2 connect to myDB2