我有一个要记录输出的 cron 作业。cron 文件 ( crontab -e
) 是:
0 7 * * * node $HOME/server/task.js >> $HOME/server/log.txt
cron 任务被称为:
$ grep CRON /var/log/syslog
Nov 4 07:00:01 ip-... CRON[0000]: (bitnami) CMD (node $HOME/server/task.js >> $HOME/server/task.txt)
Nov 4 07:00:01 ip-... CRON[0000]: (CRON) info (No MTA installed, discarding output)
带有错误的行意味着我没有安装电子邮件,但我也不想。
当 NodeJS 任务的第一行使用console.log()
.
我确认 cron 作业没有运行。
如何调试问题、让 cron 运行并将结果保存到文件中?
默认情况下,cron 作业的输出会邮寄给您正在执行脚本的用户,这是您没有安装 MTA的原因,因为您的系统上没有安装任何邮件代理。
如第一条系统日志行所示,您的脚本确实正在执行。这里的问题在于未重定向到标准输出的输出。
因此,尝试编辑您的 cron 作业: