Dove si trova il file di registro di cron in Mac OS X Lion?

19

Voglio risolvere un cron job che ha funzionato bene fino a una modifica recente, ma non riesco a trovare il file di registro di cron, dov'è?

    
posta Ali 31.01.2012 - 18:23
fonte

5 risposte

25

Per impostazione predefinita, cron non registra l'output dei lavori eseguiti. È possibile registrare il fatto che i cronjob sono stati eseguiti, ma non è quello predefinito su OS X.

Per indagare sull'esecuzione di cronjob, suggerisco di modificare la linea cronjob per reindirizzare STDOUT e STDERR ai file di log. Nel tuo file crontab o dopo aver eseguito crontab -e , ma lo fai, aggiungi qualcosa di simile alla tua linea di lavoro:

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

Questa operazione dovrebbe inviare STDOUT (output normalmente stampato o echo allo STDOUT) in un file di testo denominato stdout.log nella directory / tmp e STDERR a stderr.log nella directory temp. Molte utilità utilizzano STDERR per stampare messaggi di errore speciali quando si tratta di errori dell'applicazione e non di errori generati dall'esecuzione effettiva del programma. (Puoi leggere ulteriori informazioni su STDERR su Wikipedia.)

    
risposta data 31.01.2012 - 19:04
fonte
17

Molto più semplice aggiungere semplicemente quanto segue a /etc/syslog.conf :

cron.* /var/log/cron.log 

Quindi riavvia syslog

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

Testato e funzionante su OSX 10.7.4

    
risposta data 27.09.2013 - 17:12
fonte
9

Per impostazione predefinita, "logging" non è abilitato. Ma potresti ottenere alcune informazioni utili eseguendo il comando mail .

TL; DR sul comando mail : premi invio per leggere i messaggi, quindi q e inserisci per uscire.

    
risposta data 07.08.2015 - 19:24
fonte
3

Risolto quando cron sta eseguendo il lavoro (come me), /usr/local/bin non è in PATH .
Ho trovato questo per tentativi ed errori e costruendo il lavoro da zero da una cosa semplice che sapevo avrebbe funzionato e gradualmente aggiunto le cose fino a quando ho trovato il problema.

Informazioni sugli altri suggerimenti e risposte:
Per qualche ragione (almeno sulla mia macchina, che esegue un Lion aggiornato da SnowLeopard) cron non usa i parametri specificati nei file plist che launchd viene soppiantato per leggere /System/Library/LaunchDaemons/com.vix.cron.plist o forse cron su Lion no scrivi qualcosa su stdout o stderr.

Dal modo in cui sto usando il link a sync una cartella con un bucket Amazon S3 come backup (come un DropBox primitivo) .

    
risposta data 01.02.2012 - 18:45
fonte
2

Sono stato in grado di trovare l'accesso cron-job,

/var/mail/{user-name}

Di seguito è riportato un registro del processo cron che ho per l'esecuzione di un comando CLI AWS,

From [email protected]  Fri Mar  2 10:00:00 2018
Return-Path: <[email protected]>
X-Original-To: build
Delivered-To: [email protected]
Received: by BuildServer1.local (Postfix, from userid 501)
    id A7A94296CBA3; Fri,  2 Mar 2018 10:00:00 +0100 (CET)
From: [email protected] (Cron Daemon)
To: [email protected]
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: <[email protected]>
Date: Fri,  2 Mar 2018 10:00:00 +0100 (CET)

upload: ../../app/logs/debug.log to s3://**my-s3***/app/logs/debug.log
    
risposta data 02.03.2018 - 10:16
fonte

Leggi altre domande sui tag