답변:
명령에 대한 절대 경로를 입력하지 않기 위해 쉘은 $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