スクリプトには権限と所有権/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。