抱歉,如果这是重复的 - 在我合并我的 Stackoverflow 和 serverfault 帐户后,我的问题似乎被删除了......
使用 CentOS 5.2,这个 cron 根本没有运行(/var/log/cron 没有显示任何活动,并且 feat.log 是空的)。
5 0 * * * /opt/ree/bin/ruby /srv/corkd/current/script/runner --environment=staging 'Featurable.shift' > /home/kyle/feat.log 2>&1
更新:突然间它运行起来了 - */5 * * * * [命令] 以某种方式运行,但 5 0 * * * [命令] 不会运行(或任何单分钟、单小时设置)...并且 strace 也显示完美运行......
更新2:我以为服务器位于东海岸,并设置为东部时间,但实际上相隔 3 个时区。所以我的 crontab 在技术上是正确的,但需要将小时数推迟 3 小时……太棒了。date
本来可以解决所有问题
答案1
只是为了确定一下,您是否尝试过在 shell 中运行该命令?
可能是 cron 的 shell 配置中存在某些内容阻止了 ruby 运行。验证您的 /etc/crontab 是否与此类似(如果您尚未对其进行自定义,则这是 RHEL 默认设置):
[andy@]# cat /etc/crontab 外壳=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root 主页=/ # 运行部分 01 * * * * root 运行部分 /etc/cron.hourly 02 4 * * * root 运行部分 /etc/cron.daily 22 4 * * 0 root 运行部分 /etc/cron.weekly 42 4 1 * * root 运行部分 /etc/cron.monthly
您还可以将 crontab 更改为 /5 * * * * 以便在测试时每 5 分钟运行一次任务(如果可行的话)。
您现在还有其它正在运行的 cron 吗?
答案2
也许你应该检查一下这是否有效:
5 0 * * * 用户 /opt/ree/bin/ruby /srv/corkd/current/script/runner --environment=staging 'Featurable.shift' > /home/kyle/feat.log 2>&1
将 USER 更改为要用于此作业的用户并运行 cron。我遇到过这样的问题,这解决了我的问题。
答案3
事实证明,我以为位于东海岸并设置为东部时间的服务器实际上相隔 3 个时区。因此,我的 crontab 在技术上是正确的,但需要将小时数推迟 3 小时……太棒了。date
一切都解决了。