Cron 作业无法运行 NodeJS 脚本

Cron 作业无法运行 NodeJS 脚本

我有一个 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 运行并将结果保存到文件中?

答案1

默认情况下,cron 作业的输出将邮寄给你正在执行脚本的用户,这就是为什么未安装 MTA因为您的系统上没有安装任何邮件代理。

您的脚本确实正在执行,如第一行 syslog 所示。此处的问题在于输出未重定向到标准输出。

因此尝试编辑你的 cron 作业:

   0 7 * * * node $HOME/server/task.js >> $HOME/server/log.txt 2>&1

相关内容