
Tengo un trabajo cron para el cual quiero registrar la salida. El archivo cron ( crontab -e
) es:
0 7 * * * node $HOME/server/task.js >> $HOME/server/log.txt
La tarea cron se llama:
$ 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)
La línea con el error significa que yono hay correo electrónico instalado, pero tampoco quiero.
El archivo de salida está vacío cuando la primera línea de la tarea NodeJS usa console.log()
.
Confirmo que el trabajo cron no se ejecuta.
¿Cómo puedo depurar lo que está mal, hacer que cron se ejecute y guardar el resultado en un archivo?
Respuesta1
De forma predeterminada, el resultado del trabajo cron se envía por correo al usuario con el que está ejecutando el script, razón por la cual tieneNo hay MTA instaladoya que no tiene ningún agente de correo instalado en su sistema.
De hecho, su script se está ejecutando como se ve en la primera línea de syslog. El problema aquí está en la salida que no se redirige a la salida estándar.
Intente editar su trabajo cron:
0 7 * * * node $HOME/server/task.js >> $HOME/server/log.txt 2>&1