我正在尝试使用cronjob运行ruby脚本(使用Rails3 runner)和以下Cronjobs:
#!/bin/bash
0-59 * * * * echo 'script test'
# Begin Whenever generated tasks for: test1
* * * * * /bin/bash -l -c '/home/administrator/test1/script/rails runner /home/administrator/test1/app/create_flag.rb >> /home/administrator/test1/test.log 2>&1'
# End Whenever generated tasks for: test1
test1 是Rails3项目文件夹的名称。
“echo'脚本测试'”作为测试添加,但似乎都没有执行。我目前正在使用 Ubuntu 10.04 LTS 。
我是否错误地写了cronjob?
答案 0 :(得分:2)
Crontab文件不是shell脚本。因此,您不需要在文件开头#!/bin/bash
。另外,那里的空间是可疑的。尝试这样的事情:
SHELL=/bin/bash
MAILTO=administrator@localhost
BASH_ENV=/home/administrator/.bash_profile
* * * * * /home/administrator/test1/script/rails runner /home/administrator/test1/app/create_flag.rb >> /home/administrator/test1/test.log 2>&1'
另外,请务必将crontab -e
称为administrator
以编辑crontab文件。
答案 1 :(得分:1)
您需要指定运行命令的用户(您可以看到格式here。此外,echo会输出'script test'到什么?如果您想要测试,请尝试触摸文件,所以你可以亲眼看到cron作业的动作。
答案 2 :(得分:0)
Cron不使用您的用户环境,因此它不具有您拥有的相同路径集。这意味着您应该使用命令的绝对路径。