2017-11-01 19 views
0

私は.txtファイルを更新するpythonスクリプトを持っています。Python + Cron:そのようなファイルやディレクトリはありません

端末で手動でファイルを実行すると、そのファイルも更新されます。しかし、これはcronで実行した場合にのみ問題になると思われます。

ログファイル内の応答は次のとおりです。

そのようなファイルまたはディレクトリ: 'アップロード/ test.txtの'

このため、cronコマンドは次のとおりです。

* * * * * /usr/bin/python3 /root/script.py >> /root/log.log 2>&1 

私は文字通り困惑しています。どんな解決策ですか?

+0

はあなたがscript.py' 'で' test.txt'ファイルへの絶対パスを使用してみましたか? – schwobaseggl

+0

私は〜 '使用してみました/ root/uploads.test.txt'は絶対パスなのですか? – JamesG

+0

これは正しく表示されません '/ root/uploads/test.txt'を試してみてください!curretnユーザのホームフォルダへのパスである'〜 ' 。 – schwobaseggl

答えて

1

uploads/test.txtは相対パスです。 Cronは親ディレクトリのuploadsから実行されていません。 uploadsの親ディレクトリに例えば/data/foo/uploads/test.txt、またはcwd(アップロードへの絶対パスを使用してください。

+0

また 'cd/data/foo && exec python ...'を選択することもできます( 'exec'はパフォーマンスの最適化にすぎません。つまり、' python'の後にシェルをメモリに置く必要はありません。 '&&'は非常に重要です:スクリプトが開始されることを期待するディレクトリに対して 'cd'を実行できない場合、Pythonインタプリタを実行しようとしません。 –

関連する問題