如果我没有尝试在互联网上找到的所有方法,就不会在这里发帖...如果能得到经验丰富的系统管理员的任何指导,我将不胜感激。
这是我的问题: 等中的 cron 作业/etc/cron.daily
在/etc/cron.hourly
我的 Slicehost Ubuntu 服务器上运行良好 - 它们的执行被记录到/var/log/syslog
和/var/log/cron.log
我通过 crontab 创建了两个测试 cron 作业,一个以 root 用户身份运行,一个以管理员用户身份运行,它们应该每分钟运行一次。以下是以crontab -l
root 用户身份运行的输出
$ crontab -l
* * * * * /bin/date > /tmp/unicorns
$ crontab -u neil0 -l
* * * * * /home/neil0/crontab/unicorn.sh >> /home/neil0/logs/crontab.log >&1
编辑 1:我没有完全复制这个...输出中没有换行符,这就是问题的根源
以下是unicorn.sh
#!/bin/sh
echo 'UNICORNS'
但是/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
如果你想知道“独角兽”是不是我用来代替“F***”的沮丧词,自从一个实时网站的调试出现问题之后,所以正如你所看到的,我在这里几乎已经束手无策了。任何帮助都将不胜感激。
答案1
呃……嗯。所以我猜你们大多数人已经知道了,你需要用换行符来结束你的 crontab 文件。这就是整个问题。希望这对其他人有所帮助
答案2
请记住,在 crontab 中,与在 shell 中不同,您需要转义特殊字符,即
0 0 * * * backup_command > /var/log/backup-$(date +**\\**%a).log