【问题标题】:why my crontab is not executing my shell script?为什么我的 crontab 没有执行我的 shell 脚本?
【发布时间】:2012-10-27 03:47:56
【问题描述】:

在哪里查看 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

【问题讨论】:

标签: shell unix crontab


【解决方案1】:

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

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

要访问根 crontab,请执行以下操作

su - root
crontab -e

【讨论】:

    【解决方案2】:

    cron 守护程序将记录到默认系统记录器。因此它将被记录到消息或系统日志中。 您可以配置 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 执行”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-15
      • 2013-08-28
      • 1970-01-01
      • 1970-01-01
      • 2021-04-07
      • 2012-10-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多