Задание 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

Связанный контент