我不明白为什么 cron 不是真的每 10 分钟执行一次命令。
在crontab -e
我添加了:
*/10 * * * * /var/www/myproject/recording/batch.pl
我可以在 cron 日志中看到它每 10 分钟运行一次:
Mar 17 10:50:01 host crond[26335]: (root) CMD (/var/www/myproject/recording/batch.pl)
Mar 17 11:00:01 host crond[26357]: (root) CMD (/var/www/myproject/recording/batch.pl)
Mar 17 11:10:01 host crond[26418]: (root) CMD (/var/www/myproject/recording/batch.pl)
Mar 17 11:20:01 host crond[26657]: (root) CMD (/var/www/myproject/recording/batch.pl)
但它并没有真正执行命令。
当我在 Linux 控制台中手动执行该命令时,它工作正常。
CRON 不会继承您所有的环境变量。某些软件必须手动调用(即:如果您没有有效的 $PATH 环境变量,则调用
ifconfig
or is not equal)。/sbin/ifconfig
还要确保它是可执行的,并且你的 shebang 被正确定义(否则你必须在你的命令前面加上解释器)。
正如 CloudWeavers 所说,它主要是关于缺少的环境变量,要检查究竟缺少什么,您可以编辑 cronjob 以将其所有标准输出/错误记录到日志文件中,以便您可以查看它以了解是什么阻止了它:
如何像这样设置你的 crontab
然后你可以跟踪日志文件 /var/log/myproject-recording-batch.log 来跟踪运行