用户 cron 作业未运行但系统作业正在运行

Nei*_*kar 3 ubuntu slicehost cron

如果我没有尝试过我在互联网上能找到的所有东西,我就不会在这里发帖……感谢经验丰富的系统管理员的任何指导。

这里是我的问题:在cron作业/etc/cron.daily/etc/cron.hourly等等都是我Slicehost Ubuntu的服务器上运行良好-它们的执行被记录到两个/var/log/syslog/var/log/cron.log

我已经通过应该每分钟运行一次的 crontab 创建了两个测试 cron 作业,一个作为 root 用户,一个作为管理员用户。这是以crontab -lroot 身份运行的输出

$ crontab -l
* * * * * /bin/date > /tmp/unicorns
$ crontab -u neil0 -l
* * * * * /home/neil0/crontab/unicorn.sh >> /home/neil0/logs/crontab.log >&1
Run Code Online (Sandbox Code Playgroud)

编辑 1:我没有完全复制这个......输出中没有换行符,这就是问题的根源

这里是内容 unicorn.sh

#!/bin/sh
echo 'UNICORNS'
Run Code Online (Sandbox Code Playgroud)

但是既/home/neil0/logs/crontab.log没有/tmp/unicorns更新也没有更新,并且没有运行这些作业的记录/var/log/syslog/var/log/cron.log

在你问之前,似乎 cron 正在运行——

$ ps aux | grep cron
root      1588  0.0  0.1  18616   980 ?        Ss   12:31   0:00 /usr/sbin/cron
root      1798  0.0  0.1   3944   604 pts/0    R+   13:01   0:00 grep cron
Run Code Online (Sandbox Code Playgroud)

万一你想知道“独角兽”是我对“F***”的替代沮丧词,因为在一个实时网站上出现了某种调试混乱,sooooo,正如你所看到的,我几乎无所适从。任何帮助将不胜感激。

Nei*_*kar 5

嗯。所以我猜你们大多数人已经知道了,你需要用换行符结束你的 crontab 文件。这就是整个问题。希望这对其他人有帮助

  • 是的 'crontab -e' 是要走的路。它将在您设置为 EDITOR 环境变量的程序中打开现有的 cron 文件,然后在您完成后安装它。它还会在安装新文件之前进行一些完整性检查,因此我认为它会添加必要的换行符。所以如果你想让它使用 emacs,你只需要设置适当的 env 变量。 (2认同)