美文网首页
Crontab 的错误排查的几个步骤

Crontab 的错误排查的几个步骤

作者: 磐创AI_聊天机器人 | 来源:发表于2017-03-31 17:52 被阅读695次

    背景

    之前一直运行正常的 crontab 程序有问题,看程序的日志,在某一天停止了。直接在命令行运行,又是正常的,于是开始了找 bug。

    查看运行状态

    既然命令行可以直接运行,首先想到的就是 crontab 是不是停止了。

    service crond status 
    

    crontab 运行正常,那么接下来看运行日志。

    运行日志

    日志文件位置一般在 /var/spool/cron/ 目录下,这个日志显示的是 crontab 的命令执行日志,并不包括具体的执行情况。
    类似这样:

    Sep 22 04:22:01 localhost crond[32556]: (root) CMD (run-parts /etc/cron.weekly)
    Sep 22 04:22:01 localhost anacron[32560]: Updated timestamp for job `cron.weekly' to 2013-09-22
    Sep 22 05:01:01 localhost crond[22768]: (root) CMD (run-parts /etc/cron.hourly)
    Sep 22 06:01:01 localhost crond[25522]: (root) CMD (run-parts /etc/cron.hourly)
    Sep 22 07:01:01 localhost crond[28255]: (root) CMD (run-parts /etc/cron.hourly)
    Sep 22 08:01:01 localhost crond[30982]: (root) CMD (run-parts /etc/cron.hourly)
    

    运行详情日志

    我遇到的情况就是 crontab 命令其实运行了,有记录,但是没有执行成功,接下来可以配置运行详情日志,这样会把命令执行结果保存下来,更加方便查找失败的原因。

    0 6 * * *  /root/script/ss.sh >> /root/for_crontab/mylog.log
    

    这样即使命令执行失败,也会记录相应的返回信息,方便查找错误原因,达到类似于命令行交互的效果。

    我配置了之后,查看日志,返回的内容是:

    sudo: sorry, you must have a tty to run sudo
    

    到这里找到了错误,Google 了一下发现这是一个很常见的错误。在这里找到了错误的详情,于是很快的找到了解决方法。如果不进行这一步的配置,就没有命令执行的返回内容,就很难快速的定位问题。

    sudo: sorry, you must have a tty to run sudo

    运行脚本日志

    还可以加上更加详细的脚本运行记录,把关键的节点数据保存到日志,可以更加方便调试。

    引用

    http://www.cnblogs.com/doseoer/p/5663187.html
    http://blog.csdn.net/hittata/article/details/7713072

    相关文章

      网友评论

          本文标题:Crontab 的错误排查的几个步骤

          本文链接:https://www.haomeiwen.com/subject/wgqvottx.html