Cron-不会每 10 分钟执行一次命令

Cron-不会每 10 分钟执行一次命令

我不明白为什么 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 控制台中手动执行该命令时,它运行正常。

答案1

如何像这样设置你的 crontab

*/10 * * * * /usr/bin/perl /var/www/myproject/recording/batch.pl 2>&1 | tee -a /var/log/myproject-recording-batch.log

然后你可以跟踪日志文件 /var/log/myproject-recording-batch.log 来跟踪正在运行的

答案2

CRON 不会继承您的所有环境变量。某些软件必须手动调用(即:如果您没有有效的 $PATH 环境变量,则调用ifconfig或不相等)。/sbin/ifconfig

还要确保它是可执行的,并且你的 shebang 被正确定义(否则你必须在解释器前面添加你的命令)。

答案3

正如 CloudWeavers 所说,这很可能与缺少的环境变量有关,要检查到底缺少什么,您可以编辑 cronjob 以将其所有标准输出/错误记录到日志文件中,以便您可以查看它以了解是什么阻止了它:

*/10 * * * * /var/www/myproject/recording/batch.pl &> output.log

相关内容