zoukankan      html  css  js  c++  java
  • crontab不执行perl脚本分析

    在新装的Linux服务器上部署了一个作业监控磁盘空间并提前告警,在shell脚本里面调用了一个perl脚本发送告警邮件。结果出现了一个很奇怪的现象:如果手工执行该脚本/home/oracle/scripts/disk_capatiy_alarm.sh能发出告警邮件,但是在crontab里面发现脚本没有发出告警邮件。检查了/var/log/cron后发现该作业执行了。最后发现shell执行了,但是perl脚本没有执行。搜索了相关资料后,了解到一般出现这种情况要么是因为环境变量,要么是因为使用了相对路径。因为crontab它总是不会缺省的从用户profile文件中读取环境变量参数,经常导致在手工执行某个脚本时是成功的,但是到crontab中试图让它定期执行时就是会出错.

    我首先将perl ${email_content} 改成了使用绝对路径/usr/bin/perl ${email_content} ,测试依然不行

    clip_image001

    因此在脚本里面应用环境变量. /etc/profile 。 问题解决了。虽然寥寥几字,但是从问题纠结我开始到问题解决。基本上花费了半天时间。网上也有不少人碰到过这种情况。

     

    image

     

    参考资料:

    http://blog.slogra.com/post-238.html

  • 相关阅读:
    HDOJ/HDU 1015 Safecracker(枚举、暴力)
    nodejs之入门
    git错误收集总结
    git基本操作
    git使用前配置
    花开花落花非花、缘起缘灭缘随缘
    js之定时器
    js之Date(日期对象)
    es5严格模式简谈
    try...catch
  • 原文地址:https://www.cnblogs.com/kerrycode/p/4520258.html
Copyright © 2011-2022 走看看