【发布时间】:2012-07-26 04:09:22
【问题描述】:
我在运行 Ubuntu 12.04 的机器上使用自定义 Linux Kernel 3.2.1 有一段时间了,今天我想安排一个 cron 任务,发现 crontab 中的 crons 没有被执行。
cron 服务正在运行,所以我认为这可能是我错过的某些内核配置选项的问题,但不知道可能是什么。有什么建议吗?
【问题讨论】:
我在运行 Ubuntu 12.04 的机器上使用自定义 Linux Kernel 3.2.1 有一段时间了,今天我想安排一个 cron 任务,发现 crontab 中的 crons 没有被执行。
cron 服务正在运行,所以我认为这可能是我错过的某些内核配置选项的问题,但不知道可能是什么。有什么建议吗?
【问题讨论】:
我认为自定义内核不会有太大的不同。也许……但不是我首先要看的东西。
首先,检查运行 cron 的用户是否有本地邮件(检查 /var/spool/mail/)。如果有错误,可能会写在那里。如果没有,请尝试将程序的 stderr 和 stdout 重定向到文件。例如。添加到您的 cron:
SHELL = /bin/bash
PATH = /usr/bin/:/bin
* * * * * ls /tmp > $HOME/ls_tmp.log 2>&1
我认为 ubuntu 上 cron 的默认 shell 是 sh 而不是 bash,所以我喜欢将其设置为 bash 以避免 bash/sh 问题。我也喜欢明确说明路径(并将 ~/bin 添加到它的开头,用于我的本地脚本)。
【讨论】:
日志文件必须包含失败描述:
cat /var/log/syslog | grep cron -C 1
【讨论】: