你好,所有人都是StackOverflow的人。
我遇到过以前从未尝试过的问题。 这是我的情况。
我以root用户身份进入我的专用服务器。我运行crontab -e
,crontab文件现在打开了,我用这个简单的行写道:
* * * * * /usr/bin/touch /tmp/chekifworks.txt
然后我保存它并收到一条消息,表明安装了新的crontab作业。一切都很棒,除了它绝对没有。但猜猜怎么了!如果我改成它:
* * * * * /root/script.sh
而且/root/script.sh的内容只是touch /tmp/testing.txt
它仍然没有做任何事情。
crontab -l
的输出:
* * * * * /usr/bin/touch /tmp/checkifworks.txt
0,5,10,15,20,25,30,35,40,45,50,55 * * * * /etc/webmin/status/monitor.pl
@reboot /etc/init.d/shout
拜托,强大的神啊,帮助我解决这个问题,如果你需要,我很乐意提供你可能需要的任何信息。
更新:我做了chmod a+x /root/scrip.sh
仍然没有好处。
答案 0 :(得分:2)
检查/etc/rsyslog.conf
中是否启用了cron log(取决于发行版)。
必须有一个cron.* /var/log/cron.log
节(取决于发行版)。
添加(或取消注释)它,如果没有,则重新启动syslog /etc/init.d/rsyslog restart
。
将此条目1 * * * * root /usr/bin/touch /tmp/chekifworks.txt
添加到cron。
检查/var/log/cron.log
或者,您可以将>/tmp/my_cron.log 2>&1
添加到cron条目,并在一分钟后检查错误/tmp/my_cron.log
(如果您不想编辑rsyslog.conf
,则检查两个错误{/ 1}}。
答案 1 :(得分:1)
在crontab中使用命令的完整路径通常是件好事。您应该使用以下内容。
* * * * * /usr/bin/touch /tmp/chekifworks.txt
cron
运行的环境具有非常有限的PATH
变量。
使用脚本(检查它是可执行的,顺便说一句),因为环境从cron
转移到脚本,但仍然非常有限。