我安装了 Ubuntu 14.04.5,并且尝试运行 cron,但它不起作用。
$ whoami
root
$ crontab -e
#append at the end of the file
* * * * * env > /tmp/env_root.output
#save and quit :wq
$ less /var/log/cron.log
......
Sep 22 20:15:01 myserver CRON[2993]: (root) CMD (env > /tmp/env_root.output)
$ ls -la /tmp/env_root.output
ls: cannot access /tmp/env_root.output: No such file or directory
这是为什么?我是 root,我应该能够编辑文件,Cron 日志显示它已被更改,但没有文件。如果我在当前 GNU BASH shell 中甚至在 /bin/sh 中运行该命令,它会起作用,但在 Cron 中不起作用。
我做错了什么?Ubuntu 是否有类似 SELinux 的东西,我可能错误地启用了它?我使用 Ansible 配置我的服务器,而且我不是唯一一个在 Ansible 角色上工作的人。
谢谢
编辑:这是我的 /etc/crontab 的样子,它运行 /usr/bin/myscript.sh https://paste.fedoraproject.org/433591/74650461/
答案1
解决 cron 作业问题的最佳方法是近乎实时地观察 cron 输出。
本问答描述了越狱过程syslog
,使系统创建cron.log
并监控它:
16.04:如何让 cron 创建 cron.log 并实时监控它?
将日志级别更改为 15 非常有帮助,这样它不仅显示开始时间,还显示错误和停止时间: