題:
Mac OS X Lion中的cron日誌文件在哪裡?
Ali
2012-01-31 23:23:00 UTC
view on stackexchange narkive permalink

我想對cron作業進行故障排除,直到最近的修改為止,該工作都可以正常進行,但是我找不到cron日誌文件,它在哪裡?

這真的是一項Cron工作,還是您正在使用launchd。 Cron在OS X上已被棄用。
您是否為cron作業設置了日誌文件?
這實際上是一項“ cron”工作,我使用“ cron -e”進行了設置,並且可以使用“ cron -l”看到它,並且我確信它在Lion以及雪豹上已經使用了很長時間。
不,我沒有手動為“ cron”本身設置日誌文件,儘管我在作業內部寫入了日誌文件,並且在更改某些內容後該日誌文件最近已停止工作。
阿里,既然您有答案,請將其發佈為答案並接受。不要將其編輯為問題。您不僅被允許,而且被鼓勵回答您自己的問題。
五 答案:
Jason Salaz
2012-02-01 00:04:16 UTC
view on stackexchange narkive permalink

默認情況下,cron不記錄已執行作業的輸出。可能會記錄已執行cronjobs的事實,但這也不是OS X上的默認設置。

為了調查cronjob執行輸出,我建議修改cronjob行以重定向STDOUT和STDERR到日誌文件。在您的crontab文件中,或者在運行 crontab -e 之後,執行以下操作,將以下內容添加到作業行:

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

這樣做應將STDOUT(通常打印或回顯輸出到STDOUT)發送到名為stdout.log的文本文件/ tmp目錄,將STDERR移到temp目錄中的stderr.log。許多實用程序使用STDERR來打印特殊錯誤消息,這些錯誤消息是應用程序錯誤,而不是程序實際執行生成的錯誤。 (您可以在Wikipedia上了解有關 STDERR的更多信息。)

謝謝,這正是我一直在嘗試的操作,由於某種原因,看起來像`cron`未能首先運行該作業。如果我自己通過在終端中鍵入命令來運行該作業,則該作業將運行並輸出到日誌文件,但是如果我等待`cron`來運行它,則什麼也不會發生,至少日誌文件中沒有任何變化,我在想也許是“ cron日誌文件”,或者在consol中有任何痕跡可以幫助我了解發生了什麼,最近我將shell從bash更改為zsh,但是我也不認為這可能會影響到它。
根據http://erikslab.com/2011/02/04/logging-with-launchd/,您可以使用Stdout修改cron plist(`/ System / Library / LaunchDaemons / com.vix.cron.plist`)。 / Stderr調試cron本身的路徑。我不記得plist的“ launchctl卸載”和“ launchctl加載”是否足夠,或者如果您必須完全重新啟動,則它是系統守護程序。我建議後者只是為了確保。
Fraidoon Sarwary
2013-09-27 20:12:54 UTC
view on stackexchange narkive permalink

將以下內容簡單地添加到 /etc/syslog.conf 容易得多:

  cron。* /var/log/cron.log  

然後重新啟動syslog

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

經過測試並可以在OSX 10.7.4上運行

我喜歡這個想法-但在10.10.5中,我的`/ etc / syslog.conf`說出##注意,現在在/ etc / asl.conf`中配置了平面文件日誌。該文件具有不同的語法,我不清楚如何配置該文件中的日誌記錄。
即使@KenWilliams指出syslog.conf仍然可以在High Sierra上運行。
在10.15 Catalina->`/System/Library/LaunchDaemons/com.apple.syslogd.plist中不起作用:在啟用系統完整性保護的情況下不允許進行操作。
William Entriken
2015-08-07 22:24:31 UTC
view on stackexchange narkive permalink

默認情況下,未啟用“日誌記錄”。但是,通過運行 mail 命令,您可能會獲得一些有用的信息。

TL; DR在 mail 命令上:按Enter鍵以閱讀消息,然後 q 並輸入以退出。

非常好謝謝。礦山告訴我,我的Cron有一個無法識別的命令。乾杯!
Vineeth
2018-03-02 15:16:26 UTC
view on stackexchange narkive permalink

我能夠找到cron-job登錄,

  / var / mail / {用戶名}
 

以下是我因運行AWS CLI命令而獲得的cron作業日誌,

 來自build@BuildServer1.local 2018年3月2日星期五10:00:00
返迴路徑:<build@BuildServer1.local>
X-Original-To:構建
交付至:build@BuildServer1.local
接收:通過BuildServer1.local(後綴,來自用戶ID 501)
    編號A7A94296CBA3; 2018年3月2日,星期五10:00:00 +0100(歐洲中部時間)
來自:build@BuildServer1.local(Cron守護程序)
到:build@BuildServer1.local
主題: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>
消息ID:<20180302090000.A7A94296CBA3@BuildServer1.local>
日期:2018年3月2日星期五10:00:00 +0100(歐洲中部時間)

上傳:../../ app / logs / debug.log到s3://**my-s3***/app/logs/debug.log
 
那是一條錯誤郵件,存儲在`user`的郵箱中
@patrix,我也能夠找到成功的cron工作。更新了答案。
真好!應該是公認的答案!
此答案告訴我在哪裡可以找到解決crontab作業失敗所需的信息。謝謝!
Ali
2012-02-01 23:45:04 UTC
view on stackexchange narkive permalink

當cron運行作業時(與我一樣), / usr / local / bin 不在 PATH 中。
我通過試用發現了這一點。錯誤和錯誤,並從一個我知道會起作用的簡單事物開始從頭開始構建工作,並逐漸添加事物,直到發現問題為止。

關於其他建議和答案:
出於某種原因(至少在我的計算機上,該計算機運行的是從SnowLeopard升級的Lion) cron 不使用指定的參數在 launchd 用來讀取 /System/Library/LaunchDaemons/com.vix.cron.plist 的plist文件中,或者Lion上的cron不會將任何內容寫入stdout或stderr。

通過這種方式,我使用 http://s3tools.org/s3cmd sync 一個以Amazon S3存儲桶作為備份的文件夾(例如原始DropBox)。



該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...