
У меня есть задание 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