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 cron
no 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, Postfix
está 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 only
y 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 postnaster
ahora 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/aliases
para que se vea así:
# Ver man 5 alias para el formato postmaster: root raíz: normando
(Reemplace norman
con 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 push
los 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/aliases
anteriormente. Luego, continúe ejecutando los valores predeterminados.
Cuando haya terminado, ejecute el siguiente comando para reiniciar postfix
y 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 cron
problema
crond
enví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
mail
recibí la siguiente respuesta:En cambio, encontré los errores / correos almacenados en
/var/mail/root
fuente
Está
/var/log/syslog
por 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
wcron
comando 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