web-dev-qa-db-ja.com

cronジョブが完了したことを確認する

ユーザーのcronジョブが正常に実行されたことを確認するために実行できるコマンドはありますか?

プラットフォームはUbuntu 8.04 LTSです。

/ home/useraccount/bin /にスクリプトがあります

ランニング

crontab -l

ユーザーとしてログインすると、次のような結果になります。

# m h  dom mon dow   command

@hourly /home/useraccount/bin/script_1

@hourly /home/locateruser/bin/script_2

スクリプトが電子メールを送信したり、タイムスタンプを付けてログに書き込んだりできることは承知していますが、コマンドラインから実行されたことを確認する方法しかないと思います。

[〜#〜]編集[〜#〜]

私は走った

ps -ef|grep cron 

...そしてそれは示しています

root      4358     1  0 Mar12 ?        00:00:00 /usr/sbin/cron

これがジョブを実行していることを示しているかどうかはわかりませんが...

9
CaseyIT
grep scriptname /var/log/syslog

/ var/log/cron

あなたはそれが現在実行されているかどうかを確認できます:

ps aux
4
David Fox

スクリプトが正常に完了したことを確認するには、一時ファイルを実際に使用する必要があります。ジョブの開始時に作成し、終了時に削除します。これは、クラッシュをキャッチし、エラーが発生した場合に同じジョブが再度実行されるのを防ぎます。

#!/bin/bash

# check if there is already a temp file with suffix .myscript in /tmp,
# if file exists return with status of 666
[ -f /tmp/*.bla ] && exit 666

# create a temp file with suffix .myscript
TEMP_FILE=`mktemp --suffix .myscript`
touch $TEMP_FILE

#
# script stuff
#

# we are done, clean-up after ourselves
rm $TEMP_FILE
3

http://cronitor.io というツールを作成しました。これは、いくつかのcronジョブを監視するソリューションが必要で、既存のオプションに満足できなかったためです。単一のジョブを監視することは無料であり、ビジネスで使用するための有料プランがあります。

Cronitorの優れた点は、*/5 * * * M-Wのようなcron式を与えるだけであり、ジョブがスケジュールどおりに開始されない、予想よりも長く実行される、または重複する場合に警告が表示されることです。

1
Encoderer

結果をメールで送信することもできます。

30 3 * * * find /home/*/Maildir/.Spam/{new,cur}/ -type f -mtime +6 -delete| \
           mail -e -s "task #1 report" [email protected]
0
Art W