내 서버에서는 코드를 예약하는 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