为什么我的crontab没有执行我的shell脚本?

时间:2012-11-07 05:43:32

标签: shell unix crontab

在哪里查看cron作业的日志? 我做了pgrep cron它给了2358 这是什么意思?

    0 02 * * * /feedbatch/application/scripts/baselineUpdate.sh
    0 13 * * * /feedbatch/application/scripts/baselineUpdate.sh
    #0,10,20,30,40,50 * * * * /feedbatch/application/scripts/partialUpdate.sh
    */2 * * * * /feedbatch/application/scripts/partialUpdate.sh
    15 0 * * * /usr/sbin/logrotate -s $HOME/logrotate.status -f $HOME/endeca-logrotate.conf
    16 0 * * * /usr/sbin/logrotate -s $HOME/outputrotate.status -f $HOME/endeca-outputrotate.conf

2 个答案:

答案 0 :(得分:1)

您的脚本位于此位置 - / feedbatch / 请检查/中是否有名为feedbatch的目录。以及普通用户是否有权在目录存在的情况下运行其中的脚本。尝试将所有脚本放在一个新的bin文件夹中......这是一个很好的做法..

其他脚本位于/ usr / sbin / .... 这也是许可可能是一个问题。  尝试将所有这些放在根crontab中。所以不会有任何许可问题。 还要检查/etc/cron.allow和/etc/cron.deny中是否存在您的用户名。不要担心如果这两个文件不存在。但如果这些文件存在,请确保您的名字在cron.allow中,而不是在cron.deny中

访问root crontab执行以下操作

su - root
crontab -e

答案 1 :(得分:1)

cron守护程序将记录到默认系统记录器。因此它将被记录到消息或syslog中。 您可以配置rsyslog以记录所有cron日志输出单独的文件。这有点取决于你的linux发行版。如下示例将cron日志写入Ubuntu12.04的单独文件:
编辑/etc/rsyslog.d/50-default.conf(取消命令cron。*行)

...
auth,authpriv.*         /var/log/auth.log
*.*;auth,authpriv.none      -/var/log/syslog
#cron.*             /var/log/cron.log
#daemon.*           -/var/log/daemon.log
...

重启cron守护进程 您的cron输出现在应该记录到/var/log/cron.log 这应该让你更好地了解“cron做”。