Crontab 脚本未运行(16.04)

Crontab 脚本未运行(16.04)

首先,我已经搜索过了这一页但什么也没起作用。

我的脚本将创建一个文件,这就是我知道它是否已运行的方式。/var/log/syslog没有给我任何调试信息。下面是我的 crontab 部分,下面是默认已经存在的内容:

SHELL=/bin/bash

# Check for minecraft server updates
* * * * * root minecraft_update > /tmp/cron.out

# TEST
* * * * * root env > /tmp/env.out

注意:crontab 文件末尾有一个空行。我指定了 bash shell,尽管我的脚本中已经指定了它。我的脚本 ( minecraft_update) 位于/usr/local/bin目录中,它调用的其他命令只有greplshead,它们都在/bin目录中,该目录已在 crontab PATH 中定义。

文件/tmp/cron.out已创建,但为空。/tmp/env.out文件已创建,并确认 PATH 同时包含/usr/local/bin/bin目录,还确认了SHELL=/bin/bash

附加权限信息:

ll /etc/crontab
-rw-r--r-- 1 root root 998 Jul  1 12:47 /etc/crontab

ll /usr/local/bin/minecraft_update
-rwxr--r-- 1 root root 1132 Jul  1 12:31 minecraft_update*

我对此感到很沮丧!请结束我的痛苦……[顺便说一下,这是 cron 符号,不是脏话。我喜欢 Linux 幽默 :)]

答案1

您不需要在 crontab 列表中使用“root”(除非您有一个root用于运行脚本的程序)。

如果您使用 (/var/spool/cron/crontabs/root) 编辑 crontab sudo crontab -e,则不需要用户名。如果您正在编辑系统范围的 crontab (/etc/crontab),则需要列出用户名。

前任

sudo crontab -e

SHELL=/bin/bash

# Check for minecraft server updates
* * * * * minecraft_update > /tmp/cron.out

# TEST
* * * * * env > /tmp/env.out

或者nano /etc/crontab

SHELL=/bin/bash

# Check for minecraft server updates
* * * * * root minecraft_update > /tmp/cron.out

# TEST
* * * * * root env > /tmp/env.out

来源

相关内容