특정 간격으로 Django 관리 명령을 실행하도록 되어 있는 서버(Ubuntu 18.04)가 있습니다. (매일 16:30) cron을 사용하기 전에 이와 같은 작업을 설정했지만 어떤 이유로 서버가 cronjob을 실행할 수 없습니다.
내가 실행하려는 라인은 다음과 같습니다. Python 가상 환경의 실행 파일을 사용하여 Django 관리 명령을 실행합니다.
30 16 * * * /home/username/project/venv/bin/python3 /home/username/project/DjangoProjectName/manage.py process_data >> /home/username/crontaak.log
터미널에서 직접 명령을 실행하면 모든 것이 잘 작동합니다(로그 파일 포함). Cron도 테스트로 다음 cronjob을 추가하니 예상대로 작동하는 것 같습니다.
* * * * * date > /home/username/crontestrun
또한 이것이 문제를 일으킬 수 있음을 시사하는 일부 게시물을 발견했기 때문에 스크립트 끝에 빈 줄이 있는지 확인했습니다.
시뮬레이션된(작업) 설정을 사용하여 다른 프로젝트의 crontab을 확인한 결과 오류/차이점이 발견되지 않았습니다(이 작업이 ubuntu 16.04를 실행하는 서버에서 실행되고 있다는 사실 제외).
여기 내 설정에 어떤 문제가 있는지 아는 사람이 있나요?
답변1
터미널에서 사용:
echo $PATH
실행 시 cron
Python 스크립트가 터미널에서 작동하도록 허용하는 모든 경로를 알 수 없습니다.
해결책은 Python 스크립트를 호출하는 bash 스크립트를 만드는 것입니다. 그러나 그렇게 하기 전에 다음이 실행됩니다.
PATH="new-paths:$PATH"