매분마다 cron에서 실행하고 싶은 Python 스크립트가 있습니다.
* * * * * /usr/bin/python3 /home/analytics/Documents/devDeliverables/attendanceReadTsv/check_raw.py
루트가 아닌 터미널을 사용하여 실행하면 제대로 작동합니다. 액세스 거부 오류가 발생하지만 여전히 괜찮습니다.
루트 터미널을 사용하여 실행하면 계속 실행됩니다.
알아보고 있습니다/var/로그/크론오류가 표시되지 않습니다. 또한 함께 제공됩니다/var/log/메시지, Python 호출에 오류가 표시되지 않습니다.
Python 스크립트의 기능은 tsv를 xlsx로 변환하고 원본 파일을 삭제하는 것입니다. 하지만 파일은 삭제되지 않습니다.
답변1
어리석은 소리 같지만 어쨌든 대답하겠습니다. 예상대로 실행되지 않는 이유는 터미널에서 스크립트를 실행할 때 스크립트가 있는 올바른 경로에 있기 때문입니다.
이제 cron이 실행되면 디렉토리가 /root로 변경됩니다. 그래서 내가 실행할 것으로 예상했던 폴더는 실제로 위치가 아닙니다.
Python 출력을 볼 수 있도록 cron에 추가 로깅을 추가했습니다.
* * * * * /usr/bin/python3 /home/analytics/Documents/devDeliverables/attendanceReadTsv/check_raw.py >> /home/analytics/Documents/devDeliverables/attendanceReadTsv/logs.txt 2>&1