
내 서버에서 코드를 예약하는 데 Debian
사용합니다 . 문제는 다음과 같은 줄을 추가할 때입니다.crontab
python
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