验证 cron 任务已完成

验证 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

不确定这是否表明它正在运行作业......

答案1

grep scriptname /var/log/syslog

答案2

/var/log/cron

你可以检查它是否当前正在运行:

ps aux

答案3

为了确保脚本成功完成,应该使用临时文件。在作业启动时创建它,在作业完成时删除它。这还可以捕获崩溃并避免在出现错误时再次运行相同的作业。

#!/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

答案4

我制作了一个工具,http://cronitor.io,因为我需要一个解决方案来监控一些 cron 作业,但对现有的选项不满意。监控单个作业是免费的,并且有针对商业用途的付费计划。

Cronitor 的优点在于,您只需给它一个 cron 表达式,如 */5 * * * MW,如果作业没有按计划启动、运行时间比预期的长或重叠,您就会收到警报。

相关内容