Estoy tratando de solucionar por qué mi tarea cron no funciona a veces. ¿Dónde almacena cron los archivos de registro de forma predeterminada? ¿Es / var / log / syslog?
He mirado ese archivo y está vacío. ¿Necesito configurar algo?
De manera predeterminada, los registros de cron se guardan en / var / log / syslog. Depende de la configuración de rsyslogd. Puede cambiarlo: 
vaya a la configuración de rsyslog
cd /etc/rsyslog.d/
sudo nano 50-default.conf
Línea no comentada:
# cron. * /var/log/cron.log
Guardar archivo y reiniciar rsyslog
reinicio de sudo service rsyslog
Reinicie su demonio cron para obtener sus mensajes del nuevo archivo
sudo service cron restart
Cuando cronno funciona, enviará un correo al usuario root. El único problema es: no tiene el software para enviar / almacenar el correo en los buzones.
Pero no tengas miedo, Postfixestá aquí!
sudo apt-get update sudo apt-get install postfix heirloom-mailx
Cuando lo instale postfix, le preguntará cómo desea configurarlo. En la primera pantalla, seleccione local onlyy continúe con los valores predeterminados para todo lo demás.
Ahora, usando su editor favorito, edite /etc/aliases. Se verá algo así al principio:
# Ver man 5 alias para el formato postmaster: root
Lo que esto significa es que cualquier correo enviado a postnasterahora también se enviará a root. En este caso, queremos que cualquier correo enviado a root(para los correos cron y cualquier otro correo del sistema) se envíe a username(nosotros).
Entonces, edita /etc/aliasespara que se vea así:
# Ver man 5 alias para el formato postmaster: root raíz: normando
(Reemplace normancon su nombre de usuario obviamente. A menos que tenga el mismo nombre / nombre de usuario que yo. :))
Después de todo lo dicho y hecho, ejecute el siguiente comando para pushlos cambios:
sudo newaliases
Ahora, después de esa carrera:
sudo dpkg-reconfigure postfix
Obtendrá la misma pantalla que tenía antes al instalar postfix. Ejecute los valores predeterminados ( Local Only, etc.). Cuando llegue a la parte en la que solicita el alias raíz y de postmaster, solo asegúrese de que sea el mismo que agregó /etc/aliasesanteriormente. Luego, continúe ejecutando los valores predeterminados.
Cuando haya terminado, ejecute el siguiente comando para reiniciar postfixy comenzar.
reinicio de sudo service postfix
Ahora, si cron tiene un error, se lo enviaremos por correo. Pero, probablemente se esté preguntando, ¿cómo puedo verificar mi correo (local)?
Para hacer eso, ejecuta el comando:
correo
Así de simple Si no hay correo, dirá No mail for <username>. De lo contrario, obtendrá una interfaz de terminal ordenada para usar. Consulte la página de manual para obtener información sobre cómo interactuar con su bandeja de entrada.
O, si lo prefiere, puede acceder a su página de manual local utilizando:
correo hombre
Y ahora, ¡ya terminaste! :)
PD: debe leer esto para obtener más información sobre el cronproblema
crondenvía al propietario del trabajo, no necesariamente root, por lo que si es su propio trabajo con el que instalócrontab -e, recibirá el correo. Esto también es cierto si el trabajo "falla" o no ... simplemente le envía por correo electrónico una transcripción de cualquier resultado que el trabajo tuviera.Cuando corro
mailrecibí la siguiente respuesta:En cambio, encontré los errores / correos almacenados en
/var/mail/rootfuente
Está
/var/log/syslogpor defecto.Pero se puede configurar para crear un cron.log separado, que es más útil.
Estas preguntas y respuestas describen el proceso:
16.04: ¿Cómo hago que cron cree cron.log y lo monitoree en tiempo real?
También en esta respuesta están las instrucciones para crear un
wcroncomando que lo muestre en tiempo casi real. Además, se vincula a otra respuesta,¿Cómo cambiar el nivel de registro cron?
que muestra cómo cambiar el nivel de registro para incluir más que solo el inicio de los trabajos; el nivel 15 también mostrará errores y la hora de finalización.
fuente