cron一个带有debian,screen和ec2的简单测试脚本

时间:2013-10-26 19:41:23

标签: cron debian crontab

我想在这里学习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个新文件。不确定这里到底发生了什么 - 任何解决这个问题的建议都将不胜感激! 感谢。

1 个答案:

答案 0 :(得分:0)

问题在于cron条目,你的脚本似乎运行正常。

执行普通crontab -e时,您正在修改与您的用户对应的crontab条目。您正在使用的cron作业的格式适用于在/etc/crontab

中直接添加系统范围的crons的情况

因此,您可以使用crontab -u user -e为特定用户打开crontab(因为您的案例中的用户是root,您需要使用sudo运行此命令)并输入cronjob没有用户名

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

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

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