
- 毎時間Rスクリプトを実行するcronジョブがあります。
- このスクリプトは、毎日未知の時間に更新されるオンラインデータソースを確認します。
- データソースが更新されない場合、スクリプトはエラーコードで終了します。
- ソースが更新されると、エラーコードなしでスクリプトが正常に実行されます。
- スクリプトが完了したら、手動ワークフローを開始する必要があります。
- cronjobが完了したら、通知を受けてワークフローを開始するタイミングを知りたいです。
私がしようとしましたが、ひどいか間違っていることが判明しました:
- RスクリプトからEメールを送信する
- 成功すると、スクリプトでエラーが発生します。
私がしたいこと:
- 成功した実行後にカスタマイズされたクローン通知メールを送信する
- 私は良いことを考えていませんでした
答え1
cron アクション コマンドラインの末尾に以下を追加します。
&& date | sendmail -s "R job completed successfully" [email protected]
これにより成功通知が電子メールで送信され、ゼロ以外の終了コードはcronで正常に処理されます。
、、、またはメッセージ本文を生成するために使用したいすべてのプレースdate
ホルダです。echo
printf
cat
ちなみに、他のバージョンのコマンドラインオプションが他の実装よりもコマンドラインオプションをより一貫して処理するため、代わりにsendmail
使用しています。mail
sendmail
mail
または、Rジョブに標準出力として出力を生成させます。そうしないように設定しない限り、cronはcronジョブのstdoutとstderrをジョブの所有者に電子メールで送信します。
明示的な使用sendmail
は必要ありません。件名、住所、送信者の住所、ヘッダーの追加などを設定できます。
cron
ジョブ所有者(あなた)またはcrontabのMAILTO変数に設定されているEメールアドレスにのみ送信されます。 cronはトピックも設定します。ContainsのCron <user@host>
後にcronが実行するコマンドが続きます。