一定時間スクリプトを実行した後、cronジョブは終了します。

一定時間スクリプトを実行した後、cronジョブは終了します。

1 日の間に異なる時間に複数の cronjob が実行されていますが、特定の cronjob のいずれかが期待どおりに実行されず、しばらくすると終了します。

0 0  * * * python3 /scratch/pyscripts/backdoor.py --user SEKHAR >> /scratch/tlog/backdoor.log 2>&1;

backdoor.pyスクリプトはforループで各ファイルを1つずつ実行し、1時間または約25個のファイルの後に突然終了します。ログファイルにはエラーメッセージや終了メッセージはありません。

ただし、手動で実行するとスムーズに実行されます。

この特定のcronjobが失敗した理由をどのようにデバッグできますか?

オペレーティングシステム:Linux - Debian

ベストアンサー1

私の仕事は数時間続くことがあるので、本質的に仕事を制限するcronことはないと思います。cron私の傾向は、タスクpython自体がクラッシュすることです(しかし、タスクが何であるか、どのように書かれたのかわからず、ターミナルセッションで正しく実行されていると言ってくれてありがとう)。

おそらく、ジョブ自体の周りにラッパーを作成して、予期しないシャットダウンの根本原因を特定する問題を解決しますpython。これらのこと、

#!/bin/sh
#
exec 1>/scratch/tlog/backdoor.log 2>&1

dtStart=$(date +'%Y-%m-%d %H:%M')
printf "%s\tStarted at %s\n" "$dtStart" "$dtStart"

python3 /scratch/pyscripts/backdoor.py --user SEKHAR
ss=$?

dtStop=$(date +'%Y-%m-%d %H:%M')
printf "Uptime and load avg:%s\n" "$(uptime)"
printf "%s\tStarted at %s and stopped at %s with status %d\n\n" "$dtStop" "$dtStart" "$dtStop" $ss

その理由は、ジョブをcron終了すると「完了」メッセージを受け取る可能性はほとんどありませんが、ジョブの場合はpythonラッパーによって報告された終了ステータスと最終メッセージを受け取るためです。この情報を使用すると、調査に集中することができます。

おすすめ記事