【问题标题】:Cannot get a Cron event to fire on my Linux server [closed]无法在我的 Linux 服务器上触发 Cron 事件 [关闭]
【发布时间】:2011-04-30 18:13:46
【问题描述】:

我有一个 Amazon EC2 Linux 微型实例服务器,我需要启动一个每小时进程。我选择使用 crontab 并且无法启动它。

我在 /etc/cron.hourly 中放置了一个 *.sh 文件

  • 如果我运行$ sh /etc/cron.hourly/notify.sh,脚本会按预期运行。
  • 我检查了 cron 服务是否正在运行。
  • 我检查了crontab的内容在最后

notify.php 会在它被调用时记录下来,这样我就可以知道该服务从未运行。 有什么想法吗?

谢谢

内容:/etc/cron.hourly/notify.sh

curl localhost/notify.php

内容:/etc/crontab

SHELL=/bin/bash  
PATH=/sbin:/bin:/usr/sbin:/usr/bin  
MAILTO=root   HOME=/       

# run-parts  
01 * * * * root run-parts /etc/cron.hourly  
02 4 * * * root run-parts /etc/cron.daily  
22 4 * * 0 root run-parts /etc/cron.weekly  
42 4 1 * * root run-parts /etc/cron.monthly 

【问题讨论】:

  • 脚本是否设置了可执行位?此外,您可能希望在顶部添加一个 shebang (#!/bin/bash) 行。
  • cron 确实有你可以检查的日志。

标签: php linux shell amazon-ec2 crontab


【解决方案1】:

我建议检查文件权限。应设置 x 位。另一件事是脚本第一行中的#!/bin/sh。最后一个可能不是必需的。

【讨论】:

    【解决方案2】:

    听起来环境可能不同;尝试类似 /bin/echo hello world (使用 which 来找到他们的 echo)。如果可行,则可能是 $PATH 问题。

    【讨论】:

      【解决方案3】:

      我将此行添加到/etc/crontab

      * * * * * root curl /etc/notify.sh >>/var/log/cron.log
      

      这每分钟都会产生输出,帮助我找到问题所在。最后我在脚本中有一个错字。

      感谢大家的帮助!!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-10-19
        • 2021-06-27
        • 1970-01-01
        • 2013-01-11
        • 2018-10-28
        • 2020-10-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多