有人能解释一下为什么我的 cron 作业没有运行吗?我尝试过一些简单的作业,比如日期/时间作业,而且可以运行。
下面是我尝试运行的一个示例:
# Begin Whenever generated tasks for: taxscribe
0 0,6,12,18 * * * /bin/bash -l -c 'cd /home/deploy/taxscribe/releases/20110311205859 && RAILS_ENV=production rake informer:sync:submitted --silent'
0 * * * * /bin/bash -l -c 'cd /home/deploy/taxscribe/releases/20110311205859 && RAILS_ENV=production rake informer:sync:extensions --silent'
0 * * * * /bin/bash -l -c 'cd /home/deploy/taxscribe/releases/20110311205859 && RAILS_ENV=production rake informer:sync:accounts --silent'
# End Whenever generated tasks for: taxscribe
感谢您的帮助。
答案1
当 crond 尝试执行作业时,可能rake
不在 PATH 中?(尝试输入 rake 二进制文件的完整路径)
答案2
确保 crond 正在运行
pgrep crond
答案3
检查 crond 是否正在运行,并检查它是否设置为随系统启动
chkconfig crond --list
如果不是,那么做
chkconfig crond on
让它在启动时启动。
还要检查您的日志。确保您的脚本中没有阻止执行的错误。
/var/log/cron
答案4
如果您正在运行的作业产生任何输出,那么 cron 将把它邮寄到运行该作业的帐户。
您可以将作业的输出捕获到日志文件中,例如
/bin/bash -l -c 'cd /home/deploy/taxscribe/releases/20110311205859 && RAILS_ENV=production rake informer:sync:submitted --silent &>/path/to/file.log'
看看它说了什么。