$PATH를 전역적으로 수정하는 방법

$PATH를 전역적으로 수정하는 방법

내 서버에서 코드를 예약하는 데 Debian사용합니다 . 문제는 다음과 같은 줄을 추가할 때입니다.crontabpython

6 9 * * * python /path/to/daily_task.py &> $HOME/out.txt

그다지 놀랍지도 않게 출력에는 python명령을 찾을 수 없다고 명시되어 있습니다.

물론 crontab 항목에 전체 경로를 추가할 수도 있지만 이 아이디어는 지저분해 보이고 예를 들어 에서 /opt/python/3.9.2/bin/python와 같은 작업을 수행해야 할 때에도 이 문제가 지속되기 때문에 마음에 들지 않습니다 .os.system("python task.py")daily_task.py

나는 다음과 같은 줄을 추가해 보았습니다 /etc/environment.

export PATH="$PATH:/opt/python/3.9.2/bin/"

재부팅 후 실제로 python터미널 창에서만 사용할 수 있지만 crontab여전히 .$PATH/usr/bin

(crontab 파일을 변경하지 않고) $PATH모든 곳에서 변경하려면 이 코드를 어디에 넣어야 합니까 ?crontab

답변1

의 내용을 보면 /bin많은 프로그램이 bin 디렉토리에 직접 배치되지 않기 때문에 많은 심볼릭 링크를 볼 수 있습니다. 당신도 똑같이 할 수 있습니다:

sudo ln -s /opt/python/3.9.2/bin/python /usr/bin

이렇게 하면 crontab.

답변2

다음과 같이 crontab 파일 자체에 환경 변수를 추가할 수 있습니다.

PATH=/usr/bin:/whatever/bin
HOME=/home/myuser
6 9 * * * python /path/to/daily_task.py &> $HOME/out.txt

관련 정보