MacOSX Lion에서 크론 로그 파일은 어디에 있습니까?


25

최근 수정까지 잘 작동하는 크론 작업의 문제를 해결하고 싶지만 크론 로그 파일을 찾을 수 없습니다. 어디에 있습니까?


2
실제로 cron 작업입니까, 시작 했습니까? Cron은 OS X에서 더 이상 사용되지 않습니다.
jaberg

1
크론 작업에 대한 로그 파일을 설정 했습니까?
daviesgeek

실제로 cron제가 설정 한 직업 cron -e이며 함께 볼 수 있으며 cron -lLion과 그 전에 Snow Leopard에서 오랫동안 일한 것으로 확신합니다.
Ali

그리고 아니요, 작업 내부의 로그 파일에 쓰지만 무언가를 변경 한 후 최근에 작동이 중지되었지만 'cron'자체에 대한 로그 파일을 수동으로 설정하지 않습니다.
Ali

2
알리, 답변이 있으니 답변으로 게시하고 수락하십시오. 질문으로 편집하지 마십시오. 귀하는 자신의 질문에 대답 할 수있을뿐만 아니라 권장됩니다.
Jason Salaz

답변:


30

기본적으로 cron은 실행 된 작업의 출력을 기록하지 않습니다. cronjob이 실행되었다는 사실을 기록 할 수 있지만 OS X의 기본값도 아닙니다.

cronjob 실행 출력을 조사하려면 STDOUT 및 STDERR을 로그 파일로 리디렉션하도록 cronjob 라인을 수정하는 것이 좋습니다. crontab 파일에서 또는를 실행 한 후 작업을 수행 한 후 crontab -e작업 라인에 다음과 같은 것을 추가하십시오.

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

이렇게하면 STDOUT (일반적으로 인쇄 또는 반향 출력을 STDOUT으로)을 / tmp 디렉토리의 stdout.log 텍스트 파일로, STDERR을 임시 디렉토리의 stderr.log로 보내야합니다. 많은 유틸리티는 STDERR을 사용하여 프로그램의 실제 실행에 의해 생성 된 오류가 아니라 응용 프로그램 오류 일 때 특수 오류 메시지를 인쇄합니다. ( Wikipedia에서 STDERR 에 대한 자세한 내용을 읽을 수 있습니다 .)


고마워, 그게 내가하려고했던 것인데, cron어떤 이유로 든 처음부터 작업을 실행하지 못하는 것처럼 보입니다 . 터미널에 명령을 입력하여 직접 작업을 실행하면 명령이 실행되고 로그 파일로 출력되지만 cron실행을 기다리는 동안 아무 일도 일어나지 않으면 최소한 로그 파일이 변경되지 않을 것입니다. "또는 콘솔에 흔적이있어서 무슨 일이 일어나고 있는지 알 수 있습니다. 최근에 쉘을 bash에서 zsh로 변경했지만 이것에도 영향을 줄 수 있다고 생각하지 않습니다.
Ali

1
erikslab.com/2011/02/04/logging-with-launchd 에 따르면 /System/Library/LaunchDaemons/com.vix.cron.plistcron 자체를 디버깅하기 위해 Stdout / Stderr 경로로 cron plist ( )를 수정할 수 있습니다. plist launchctl unload를 ing하고 launchctl loading하는 것이 충분한 지 또는 완전히 다시 시작 해야하는 경우 시스템 데몬이므로 기억이 나지 않습니다 . 나는 후자를 확실하게 제안 할 것이다.
Jason Salaz

21

다음을 간단하게 추가하는 것이 훨씬 쉽습니다 /etc/syslog.conf.

cron.* /var/log/cron.log 

그런 다음 syslog를 다시 시작하십시오.

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

OSX 10.7.4에서 테스트 및 작업


3
나는이 아이디어가 마음에 들지만 10.10.5에서는 이렇게 /etc/syslog.conf말합니다 # Note that flat file logs are now configured in /etc/asl.conf. 해당 파일의 구문이 다르므로 로깅 구성 방법이 명확하지 않습니다.
Ken Williams

@KenWilliams는 syslog.conf가 High Sierra에서 여전히 작동한다고 말합니다.
물고기 모니터

15

기본적으로 "로깅"은 활성화되어 있지 않습니다. 그러나 mail명령 을 실행하여 유용한 정보를 얻을 수 있습니다 .

mail명령 에 대한 TL; DR : Enter 키를 눌러 메시지를 읽은 다음 qenter 키를 눌러 종료하십시오.


4
아주 좋아 고마워. 내 Cron에 알 수없는 명령이 있음을 보여주었습니다. 건배!
Joshua Pinter

7

cron-job 로그인을 찾을 수있었습니다.

/var/mail/{user-name}

다음은 AWS CLI 명령을 실행하기 위해 얻은 cron 작업 로그입니다.

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
user
nohillside

@patrix, 나는 성공 cron 직업도 찾을 수있었습니다. 답변을 업데이트했습니다.
Vineeth

좋은! 허용되는 답변이어야합니다!
트롤 혼

3

크론은 (나 같은) 작업을 실행할 때 밝혀졌다 /usr/local/bin에 있지 않습니다 PATH.
나는 시행 착오를 통해 이것을 발견하고 내가 알 수있는 간단한 것들에서 처음부터 작업을 구축하고 문제를 발견 할 때까지 점차적으로 추가했습니다.

다른 제안 및 답변 정보 :
어떤 이유로 (적어도 SnowLeopard에서 업그레이드 된 Lion을 실행하는 내 컴퓨터에서) 읽기 또는 읽기 위해 적용된 cronplist 파일에 지정된 매개 변수를 사용 하지 않거나 Lion에서 cron이 아무 것도 쓰지 않습니다. stdout 또는 stderr에. launchd/System/Library/LaunchDaemons/com.vix.cron.plist

그건 그렇고 http://s3tools.org/s3cmdsync백업으로 Amazon S3 버킷 이 있는 폴더에 사용합니다 (예 : 기본 DropBox).

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.