【问题标题】:Cron Job doesn't work when sending data to zabbix向zabbix发送数据时cron作业不起作用
【发布时间】:2018-08-03 09:14:00
【问题描述】:

我正在关注本指南https://github.com/omni-lchen/zabbix-cloudwatch/tree/master/cron.d 我以centos用户身份登录,甚至尝试用centos替换root但相同

手动将所有工作正常的数据发送到zabbix

 /opt/zabbix/cloudwatch/zabbix-cloudwatch/cron.d/cron.Lambda.sh "lambdaAmiCleanup" "aws_north_virginia" "localhost" "default" "us-east-1"
{'host': 'aws_north_virginia', 'value': 1.0, 'key': u'Lambda.Invocations.Sum["default","us-east-1","lambdaAmiCleanup"]', 'clock': 1533286680}
{'host': 'aws_north_virginia', 'value': 0.0, 'key': u'Lambda.Errors.Sum["default","us-east-1","lambdaAmiCleanup"]', 'clock': 1533286680}
{'host': 'aws_north_virginia', 'value': 334.57, 'key': u'Lambda.Duration.Average["default","us-east-1","lambdaAmiCleanup"]', 'clock': 1533286680}
{'host': 'aws_north_virginia', 'value': 0.0, 'key': u'Lambda.Throttles.Sum["default","us-east-1","lambdaAmiCleanup"]', 'clock': 1533286680}

但是当调度 cron 作业数据未发送时(crontab -e),我尝试将输出捕获到 txt 文件,文件已创建但它是空的

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:/opt/zabbix/cloudwatch/zabbix-cloudwatch/cron.d

*/1 * * * * root /opt/zabbix/cloudwatch/zabbix-cloudwatch/cron.d/cron.Lambda.sh "lambda-cllean-unknown-instances" "aws_north_virginia" "localhost" "default" "us-east-1" >/tmp/2.txt

如果在 crontab 文件中指定,甚至不会创建文件

【问题讨论】:

  • 这可能是因为某些环境变量或权限(您没有提到安装了哪个用户 crontab 以及您手动测试了哪个用户)。添加stderr 重定向(该行末尾的`2>&1`),它可能会为您提供更多信息。
  • 添加 2>&1 但输出相同:以 centos 用户手动运行,设置 centos 而不是 root,但相同

标签: bash cron zabbix


【解决方案1】:

开始以以下方式工作(删除根):

crontab -e
/opt/zabbix/cloudwatch/zabbix-cloudwatch/cron.d/cron.Lambda.sh "lambdaAmiCleanup" "aws_north_virginia" "localhost" "default" "us-east-1"

感谢@Richlv 的提示

【讨论】:

    猜你喜欢
    • 2015-02-23
    • 2015-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-17
    • 2019-03-09
    相关资源
    最近更新 更多