web-dev-qa-db-ja.com

Crontabが実行されていませんpythonスクリプト、エラーなし、なし

その簡単なことをするためにすでに1時間以上費やし、完全に失敗しました:/

コマンドラインで完全に機能しているのに、そのpython crontabで機能しない理由を見つけることができません...

スクリプトは(bash)です:

#!/bin/bash

touch before_zzz_text.txt # to check if cron works at all 
ls > "before_zzz_text.txt" # just to check if I'm in the correct directory

/root/anaconda3/bin/python -V > pv.txt # this is empty! or a white char

touch after_zzz_text.txt # this works new file every minute

このようにして、cronで実行されることがわかります(ファイル.txtは両方とも毎分作成されます-cronが毎分実行されるように)。

ただし、pv.txtは空です... bashスクリプトが機能していないように見えますか?

結局、bashスクリプトでより複雑なスクリプトを実行したいのですが、なぜそれが機能しないのかを掘り下げてみたので、単純化するために「/ root/anaconda3/bin/python-V」になりました。

1
kkonrad

少し議論した後(上記のコメントを参照)、基本的な問題は、pythonがバージョンテキストをstderrに書き込むことであり、予期されるstdoutではないようです。が書き込まれるため、空のファイルになります。

一般に、crontabの問題を診断するときは、エラーと出力を同じファイルまたは別のファイルに記録することをお勧めします。 python呼び出し行の最後に2>&1を追加すると、バージョンテキストがpv.txtに表示されます。

/root/anaconda3/bin/python -V > pv.txt 2>&1
3
AFH