2

我正在尝试在这里学习 cron(对不起,如果问题是 101!)。所以,我有一个像这样的小测试脚本:

#! /bin/sh
# /home/admin/js/test.sh
#
SHELL=/bin/bash
source ~/.bashrc

# Some things that run always
screen -d -r myscreen
touch /home/admin/js/testsuccess.txt
exit 0

然后我crontab -e添加以下条目(我在 ec2 上运行 debian 7):

*/15 7-23 * * * root /home/admin/js/test.sh > /dev/null 2>&1

所以..这基本上在指定的时间内每 15 分钟运行一次。cron 似乎在运行,即当我这样做时:

grep CRON /var/log/syslog

我看到输出:

Oct 26 19:30:01 ip-16-653-987-12 /USR/SBIN/CRON[20700]: (admin) CMD (root  /home/admin/js/test.sh > /dev/null 2>&1)

..但我没有touch在目录中看到新文件。不知道这里到底发生了什么 - 任何解决这个问题的建议将不胜感激!谢谢。

4

1 回答 1

0

问题在于 cron 条目,您的脚本似乎工作正常。

当您执行 plaincrontab -e时,您正在修改与您的用户对应的 crontab 条目。您使用的 cron 作业格式适用于直接在系统范围内添加 crons 的情况/etc/crontab

因此,您可以使用打开特定用户的 crontab crontab -u user -e(因为您的情况下的用户是root,您需要使用 运行它sudo)并输入不包含用户名的 cronjob

*/15 7-23 * * * /home/admin/js/test.sh > /dev/null 2>&1

或者,您可以将 cron 作业添加到系统范围的 cron 作业中,/etc/crontab而不是使用crontab -e.

另请注意,您~在脚本中使用可能会导致问题,请始终在 cron 作业中使用完整路径。

于 2013-10-27T21:22:41.720 回答