我有一个 crontab 作业设置为每分钟运行一次,如下所示:
* * * * * /home/username/public_html/domain.tld/production/scripts/cron_runner.sh
我的目标是在 cron 的输出中添加一些时间戳,这样我就可以更轻松地找到与 Web 应用程序内部 cron 系统中某些故障点有关的信息。有时我会收到消息,有时却没有收到,我只想执行一次健全性检查,确保我在此处正确构建了此脚本:
#!/usr/bin/env bash
#
# Script Name: cron_runner.sh
#
echo "Cron Execution @ `date`: " >>/home/username/public_html/domain.tld/production/var/log/crontab_output.log 2>&1
cd /home/username/public_html/domain.tld/production && /usr/local/bin/php /home/username/public_html/domain.tld/production/cron.php >>/home/username/public_html/domain.tld/production/var/log/crontab_output.log 2>&1
echo "==== END CRON EXEC ====" >>/home/username/public_html/domain.tld/production/var/log/crontab_output.log 2>&1
有什么建议么?
答案1
你可以通过管道将脚本发送ts
到更多工具,它会将时间戳添加到每一行前面,例如:
(cd /home/username/public_html/domain.tld/production && /usr/local/bin/php /home/username/public_html/domain.tld/production/cron.php) | ts >>/home/username/public_html/domain.tld/production/var/log/crontab_output.log 2>&1
此外,每次crond
执行一项作业时,它通常会将其记录下来/var/log/cron
(取决于 *nix 风格),因此如果适用于您,我应该先检查一下。