![cron에서 호출하면 Python 스크립트가 잘못된 디렉터리에 출력됩니다.](https://linux55.com/image/102315/cron%EC%97%90%EC%84%9C%20%ED%98%B8%EC%B6%9C%ED%95%98%EB%A9%B4%20Python%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EA%B0%80%20%EC%9E%98%EB%AA%BB%EB%90%9C%20%EB%94%94%EB%A0%89%ED%84%B0%EB%A6%AC%EC%97%90%20%EC%B6%9C%EB%A0%A5%EB%90%A9%EB%8B%88%EB%8B%A4..png)
스크립트에는 권한과 소유권이 /blah/script.py
있습니다 -rwxr-xr-x 1 root root
. 스크립트는 다음과 같습니다
#!/usr/bin/python
with open('blahblah', 'w') as f:
f.write('hello')
를 사용하여 crontab -e
다음을 시도했습니다.
0 * * * * /blah/script.py
작동하지만 파일은 /root/blahblah
.py 파일에 이름을 하드코딩하지 않고 /blah/blahblah
원하는 디렉터리( /blah/blahblah
이 경우)에 출력 파일을 생성하려면 어떻게 해야 합니까? 다시 말해서,cron에서 Python 스크립트를 호출하고 스크립트가 저장된 디렉터리를 작업 디렉터리로 사용하는 방법?
참고: 이것은 작동하지만 그다지 좋지는 않습니다 0 * * * * cd /home/blah && /usr/bin/python script.py
.
답변1
해결책은 이것을 Python 스크립트에 추가하는 것입니다.
import os, sys
os.chdir(sys.path[0])
답변에서 설명했듯이https://stackoverflow.com/q/1432924/1422096.