cron - 製造準備ができた代替

cron - 製造準備ができた代替

製造データを記録するために、生産システムでRaspberry Piを使用する意図でRaspberry Piをテストしています。すべてがうまくいっており、先月のテストデータを記録してきました。

冗長性とリスク管理のために予約する必要があるPythonスクリプトがたくさんあります。

私は過去にWindows Server環境で作業してきましたが、タスクスケジューラが必要なすべてのタスクを実行しました。問題のログ記録、失敗時の操作の再試行、通知など

私は過去数週間でcronで遊んで、あまりにも多くの時間を無駄にしました。ログファイルは役に立たず、MTAがインストールされていないため、実際のエラーがありません。

スケジュールをより困難にするよりも簡単にするための選択肢はありますか?

問題の詳細を追加しました。

  • 私は過去に「>>」を試しましたが、運がありませんでした。これが通常の慣行なら、もう一度試してみます。
  • Pythonスクリプトを手動で実行すると、正しく実行されます。しかし、crontabに入れるとすぐに動作が停止し、ログがないため、問題を解決できないか、少なくとも問題を理解できません。
  • ファイルの書き込みに問題があるようです。実行中のcronジョブは、Bluetoothデバイスに接続してからMySQLデータベースにデータを書き込むPythonスクリプトです。
  • cronログはジョブ出力を報告しようとしましたが、MTAが設定されていないため、MTA問題のみを報告し、実際の問題に関する追加情報は提供しません。 (/var/log/cron.logがメインログですか?)
  • MTAを調べてみると、インターネット接続が問題であり、常に利用できない可能性があります。
  • 私のデータロギングジョブは、「crontab -e」にあり、「sudo crontab -e」にあるイメージファイルを生成することです。 (私は2つの異なるcrontabファイルを使用しました)
  • 私のすべてのクローンの操作は次のとおりです。00 6 * * * python /app/test.py

ベストアンサー1

実際、クローナははい生産準備完了。あまりにも多くの戦いを経験したので、誤動作を非難するのは難しいです。あなたが遭遇する可能性のある問題は、単純なエラーが原因であることです。 cronの問題が何であるかを正確に指摘してください。

gauethがすでに指摘したように、>> /tmp/somefile 2>&1crontabからコマンドを追加できます。その機能は次のとおりです。

  • >> /tmp/somefile「コマンドの標準出力ストリームを /tmp/somefile に追加する」ことを意味します。これは、単に端末に印刷されるすべての内容を指定されたファイルに書き込むことです。 (上書き)の>>代わりに(追加)を使用することに注意してください>
  • 2>&1「stderrをstdoutに送信する」を意味します。人間の観点から:標準出力を作成するのと同じ位置にエラーの出力を作成します(上記のように)。

これにより、cronがスクリプトを実行した後に発生するログ全体を取得できます。ログファイルにこのデータが含まれるように、スクリプトに現在の日付(およびその他のいくつか)を印刷することをお勧めします。

もう一つのことに留意すべき点はPATH変数です。 Cronは対話型のターミナルセッションとはわずかに異なる環境で実行されるため、スクリプトecho $PATH自体またはcrontab行に出力を含めるのが最善です*/20 * * * * export PATH=<paste output of echo $PATH here>; <command>

おすすめ記事