59 votos

¿Dónde está el archivo de registro cron en MacOSX Lion?

Quiero solucionar un trabajo cron que funcionaba bien hasta una modificación reciente, pero no puedo encontrar el archivo de registro cron, ¿dónde está?

2 votos

¿Es realmente un trabajo cron o estás usando launchd. Cron ha quedado obsoleto en OS X.

1 votos

¿Ha establecido un archivo de registro para el trabajo cron?

0 votos

En realidad es un cron trabajo lo configuré con cron -e y puedo verlo con cron -l y estoy seguro de que funcionó en Lion y antes en Snow leopard durante mucho tiempo.

55voto

Christopher Scott Puntos 665

Por defecto, cron no registra la salida de los trabajos ejecutados. Es posible registrar el hecho de que los cronjobs se han ejecutado, pero tampoco es el valor predeterminado en OS X.

Para investigar la salida de la ejecución del cronjob, le sugiero que modifique su línea de cronjob para redirigir STDOUT y STDERR a archivos de registro. En su archivo crontab o después de ejecutar crontab -e Sea como sea, añada algo como lo siguiente a su línea de trabajo:

0 0 * * * yourcommand >/tmp/stdout.log 2>/tmp/stderr.log

Al hacer esto, se enviará STDOUT (la salida normalmente impresa o con eco a STDOUT) a un archivo de texto llamado stdout.log en el directorio /tmp, y STDERR a stderr.log en el directorio temp. Muchas utilidades utilizan STDERR para imprimir mensajes de error especiales cuando son errores de la aplicación, y no errores generados por la ejecución real del programa. (Puedes leer más sobre STDERR en Wikipedia).

0 votos

Gracias, eso es exactamente lo que he estado tratando de hacer, parece que cron Si ejecuto el trabajo yo mismo escribiendo el comando en el terminal, se ejecuta y se envía al archivo de registro, pero si espero a que el cron al ejecutarlo no pasa nada, al menos ningún cambio en el archivo de registro, estaba pensando que tal vez un "archivo de registro de cron" o que hubiera algún rastro en el consol podría ayudarme a averiguar lo que está pasando, recientemente cambié mi shell de bash a zsh pero no creo que eso pueda haber afectado a esto tampoco.

1 votos

Según erikslab.com/2011/02/04/registro-con-lanzamiento podría modificar el plist de cron ( /System/Library/LaunchDaemons/com.vix.cron.plist ) con una ruta Stdout/Stderr para depurar el propio cron. No recuerdo si launchctl unload y launchctl load Si el plist es suficiente, o ya que es un demonio del sistema si tendría que reiniciar por completo. Yo sugeriría esto último sólo para estar seguro.

49voto

Full Decent Puntos 237

Por defecto, el "registro" no está habilitado. Pero puede obtener alguna información útil ejecutando el programa mail comando.

TL;DR en el mail comando: pulse enter para leer los mensajes, y luego q y enter para salir.

4 votos

Muy bien, gracias. El mío me indicaba que había un comando no reconocido con mi Cron. Saludos.

34voto

malcolmhall Puntos 1909

Pude encontrar el registro de cron-job,

/var/mail/{user-name}

A continuación se muestra un registro de trabajo cron que obtuve para ejecutar un comando CLI de AWS,

From build@BuildServer1.local  Fri Mar  2 10:00:00 2018
Return-Path: <build@BuildServer1.local>
X-Original-To: build
Delivered-To: build@BuildServer1.local
Received: by BuildServer1.local (Postfix, from userid 501)
    id A7A94296CBA3; Fri,  2 Mar 2018 10:00:00 +0100 (CET)
From: build@BuildServer1.local (Cron Daemon)
To: build@BuildServer1.local
Subject: Cron <build@BuildServer1> /app/scripts/s3-sync.sh
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=build>
X-Cron-Env: <USER=build>
X-Cron-Env: <HOME=/Users/build>
Message-Id: <20180302090000.A7A94296CBA3@BuildServer1.local>
Date: Fri,  2 Mar 2018 10:00:00 +0100 (CET)

upload: ../../app/logs/debug.log to s3://**my-s3***/app/logs/debug.log

1 votos

Es un correo de error almacenado en el buzón de user

0 votos

@patrix , yo también pude encontrar el éxito del trabajo cron. Actualizado la respuesta.

2 votos

¡Bien! ¡Debería ser la respuesta aceptada!

26voto

Fraidoon Sarwary Puntos 111

Es mucho más fácil añadir lo siguiente a /etc/syslog.conf :

cron.* /var/log/cron.log 

A continuación, reinicie syslog

sudo launchctl unload /System/Library/LaunchDaemons/com.apple.syslogd.plist 
sudo launchctl load /System/Library/LaunchDaemons/com.apple.syslogd.plist 

Probado y funcionando en OSX 10.7.4

5 votos

Me gusta esta idea - pero en 10.10.5, mi /etc/syslog.conf dice # Note that flat file logs are now configured in /etc/asl.conf . Ese archivo tiene una sintaxis diferente, no me queda claro cómo configurar el registro en él.

0 votos

@KenWilliams aunque diga eso, syslog.conf sigue funcionando, en High Sierra.

2 votos

No funciona en 10.15 Catalina -> /System/Library/LaunchDaemons/com.apple.syslogd.plist: Operation not permitted while System Integrity Protection is engaged

4voto

Ali Puntos 364

Resulta que cuando cron está ejecutando el trabajo (como yo), /usr/local/bin no está en el PATH .
Lo descubrí por ensayo y error y construyendo el trabajo desde cero a partir de unas cosas sencillas que sabía que iban a funcionar y poco a poco fui añadiendo cosas hasta encontrar el problema.

Sobre las otras sugerencias y respuestas:
Por alguna razón (al menos en mi máquina, que ejecuta un Lion actualizado desde SnowLeopard) cron no utiliza los parámetros especificados en los archivos plist que launchd se supone que debe decir /System/Library/LaunchDaemons/com.vix.cron.plist o quizás cron en Lion no escribe nada en stdout o stderr.

Por cierto, estoy usando http://s3tools.org/s3cmd a sync una carpeta con un cubo de Amazon S3 como copia de seguridad (como un DropBox primitivo).

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X