Cronjob이 실행되지 않았지만 명령이 유효합니다.

Cronjob이 실행되지 않았지만 명령이 유효합니다.

특정 간격으로 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

실행 시 cronPython 스크립트가 터미널에서 작동하도록 허용하는 모든 경로를 알 수 없습니다.

해결책은 Python 스크립트를 호출하는 bash 스크립트를 만드는 것입니다. 그러나 그렇게 하기 전에 다음이 실행됩니다.

PATH="new-paths:$PATH"

관련 정보