Cron / Crontab लॉग कहाँ है?


753

मैं यह सत्यापित करना चाहता हूं कि मेरी क्रोन नौकरी किस समय और किस समय चल रही है। मेरा मानना ​​है कि मेरी sudo crontab -eनौकरियों के लिए एक लॉग है , लेकिन कहां?

मैंने Google को खोजा और उसमें (जिसमें मुझे /var/logनाम में 'क्रोन' के साथ कुछ भी नहीं दिखता) और उस फ़ाइल को संपादित करने के लिए सिफारिशें मिलीं , जो मेरे पास नहीं हैं /etc/syslog.conf

जवाबों:


894

डिफ़ॉल्ट स्थापना पर क्रॉन जॉब्स लॉग इन हो जाते हैं

/var/log/syslog

आप रन करके उस लॉगफ़ाइल में सिर्फ क्रॉन जॉब्स देख सकते हैं

 grep CRON /var/log/syslog

यदि आपने कुछ भी पुन: कॉन्फ़िगर नहीं किया है, तो प्रविष्टियां वहां होंगी।


46
यदि कोई एमटीए स्थापित नहीं है, तो क्रोन सिर्फ नौकरी के उत्पादन को दूर फेंक देता है।
बैरी केली

11
क्रोन लॉग /var/log/निर्देशिका में किसी अन्य फ़ाइल में हो सकता है । Cron.log या समकक्ष के लिए जाँच करें।
नवजातत्र

4
यह मुझे नौकरी से आउटपुट नहीं देता है। यह सिर्फ एक सामान्य संदेश देता है कि क्रोन को संसाधित किया गया था।
चॉवी

2
AWS पर यह
tsukimi

5
@ शदी आप grep -i CRONकेस-असंवेदनशील
nafg

236

आप बस क्रोन प्रविष्टियों को शामिल करने के लिए cys.log फ़ाइल बना सकते हैं जो कि syslog में दिखाई देती है। ध्यान दें कि यदि आप निम्नलिखित निर्देशों का पालन करते हैं, तो CRON जॉब्स अभी भी syslog में दिखाई देंगे।

फ़ाइल खोलें

/etc/rsyslog.d/50-default.conf

उस रेखा का पता लगाएं जो इसके साथ शुरू होती है:

#cron.*

उस लाइन को अनलोड करना, फ़ाइल को सेव करना और rsyslog को फिर से शुरू करना:

sudo service rsyslog restart

अब आपको यहाँ एक क्रोन लॉग फ़ाइल देखनी चाहिए:

/var/log/cron.log

क्रोन गतिविधि अब इस फ़ाइल (syslog के अलावा) में लॉग इन की जाएगी।

ध्यान दें कि cron.log में आप प्रविष्टियाँ देखेंगे जब cron ने स्क्रिप्ट को /etc/cron.hourly, cron.daily, आदि में चलाया - जैसे कुछ:

Apr 12 14:17:01 cd CRON[14368]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)

हालाँकि, आपको इस बारे में अधिक जानकारी नहीं दिखेगी कि स्क्रिप्ट वास्तव में /etc/cron.daily या /etc/cron.hourly के अंदर कैसे चली गई, जब तक कि वे स्क्रिप्ट cron.log (या शायद किसी अन्य लॉग फ़ाइल में) को सीधे आउटपुट न दें।

यदि आप सत्यापित करना चाहते हैं कि कोई क्रॉन्ब चल रहा है और उसे cron.log या syslog में खोजना नहीं है, तो एक क्रॉस्टेब बनाएं जो आउटपुट को आपकी पसंद की लॉग फ़ाइल में रीडायरेक्ट करता है - कुछ इस तरह:

01 14 * * * /home/joe/myscript >> /home/log/myscript.log 2>&1

यह सभी मानक आउटपुट और त्रुटियों को रीडायरेक्ट करेगा जो कि उस स्क्रिप्ट द्वारा निर्मित हो सकती है जो निर्दिष्ट लॉग फ़ाइल में चलती है।


1
मेरी राय से, यह उत्तर भविष्य में बेहतर है। तो आपकी syslog फ़ाइल अधिक स्पष्ट है।
shgnInc

9
सिसर लॉग से क्रोन लॉग को बाहर करने के लिए आप लाइन *.*;auth,authpriv.none -/var/log/syslogको बदल सकते हैं *.*;auth,authpriv.none,cron.none -/var/log/syslog
कोएन।

हमारे CentOS 6 पर, cron। * /Etc/rsyslog.conf में परिभाषित किया गया है, जबकि मैं rsyslog.d फ़ोल्डर में खाली हूं।
स्कॉट चू

क्या है 2>&1?
जॉन जो

2
@JohnJoe 2> & 1 का उपयोग stderr को stdout को अग्रेषित करने के लिए किया जाता है, इस तरह से आपको लॉग फ़ाइल में stderr भी मिलेगा।
संपो साराल्ला जूल 25'17

79

कभी-कभी यह उस मामले में लगातार निगरानी करने के लिए उपयोगी हो सकता है:

tail -f /var/log/syslog | grep CRON

10
ठीक है, आप शायद उपयोग करना चाहते हैं -F, जो फ़ाइल का नाम परिवर्तन के दौरान पालन करेगा, ताकि जब यह छोटा हो जाए / स्थानांतरित हो जाए, जैसे /var/log/syslog.1.gz, आप अभी भी वर्तमान /var/log/syslogफ़ाइल का अनुसरण कर रहे हैं । प्रति आदमी डॉक्स, यह रनिंग के समान ही हैtail xxxx -f --retry
मोमेर

37

आप बेहतर पठनीयता के लिए अपने स्वयं के लॉग में व्यक्तिगत क्रोनोजर के आउटपुट को भी निर्देशित कर सकते हैं, आपको बस कहीं और तारीख के आउटपुट को संलग्न करने की आवश्यकता होगी।

 0 15 * * *    /home/andrew/daily-backup.sh >> /var/log/daily-backup.log 2>&1

4
सच है, लेकिन अगर यह रेखा वाक्यविन्यास त्रुटि के कारण चलने में विफल रहती है, तो निर्दिष्ट आउटपुट लॉग में कुछ भी नहीं लिखा जाएगा।
रैप्टर

11
लॉग फ़ाइल निर्दिष्ट होने के बाद आप 2> और 1 को जोड़कर इसे हल कर सकते हैं। अपने क्रोनोजर को क्रॉस्टैब में जोड़ने से पहले उसका परीक्षण करना भी सबसे अच्छा अभ्यास है, और फिर पहले निर्धारित रन के लिए उपस्थित होना सुनिश्चित करना कि क्रॉस्टब को ठीक से स्वरूपित किया गया है।
एंड्रयू मेयर

10

यदि आपने systemdअपने सिस्टम पर स्थापित किया है, तो आप journalctlकमांड का उपयोग करके क्रोन जॉब लॉग प्रदर्शित कर सकते हैं ।

उदाहरण के लिए, मेरे Ubuntu 17.10 पर:

journalctl -u cron.service

9

यह एक बहुत पुराना प्रश्न है, लेकिन इनमें से कोई भी उत्तर संतोषजनक नहीं लगता है।

पहले अपनी क्रोन जॉब को हर मिनट चलाएं, फिर क्रॉन को नॉन-डेमन के रूप में चलाएं (अस्थायी रूप से, बस किसी भी क्रोन को मारें जो टेस्ट लॉगिंग के साथ शुरू हो सकता है):

crond -nx test

और अपने टर्मिनल के माध्यम से बहने वाले अपने प्रोग्राम के निष्पादन का लॉग देखें।


7
14.04 -No command 'crond' found, did you mean: Command 'cron' from package 'cron' (main)
G-

8

यह /var/log/syslogडिफ़ॉल्ट रूप से है।

लेकिन इसे एक अलग cron.log बनाने के लिए सेट किया जा सकता है, जो अधिक उपयोगी है।

यह प्रश्नोत्तर प्रक्रिया का वर्णन करता है:

16.04: मैं क्रॉन क्रोल कैसे बना सकता / सकती हूं और वास्तविक समय में इसकी निगरानी कैसे करूं?

इस उत्तर में भी एक wcronकमांड बनाने के निर्देश हैं जो प्रदर्शित करता है कि यह निकट-वास्तविक समय है। इसके अलावा, यह एक और जवाब के लिए लिंक,

क्रोन लॉग स्तर कैसे बदलें?

यह दर्शाता है कि नौकरियों की शुरुआत से अधिक शामिल करने के लिए लॉग स्तर को कैसे बदलना है - स्तर 15 त्रुटियों को दिखाएगा और अंत समय भी।


5

फेडोवर 29 और आरएचईएल 7

journalctl -t CROND

से journalctlमैनुअल:

   -t, --identifier=SYSLOG_IDENTIFIER|PATTERN
       Show messages for the specified syslog identifier SYSLOG_IDENTIFIER, or for any of the messages with a "SYSLOG_IDENTIFIER" matched by PATTERN.

       This parameter can be specified multiple times.

3

आप क्रोन के उत्पादन को tmp फ़ाइल में पुनर्निर्देशित कर सकते हैं

जैसे: ०० ११ ० as * * / बिन / बाश / हूम / जुबां / कॉम.श> / tmp / आउटपुट २ & १

त्रुटि और सामान्य आउटपुट, दोनों को एक ही फ़ाइल पर पुनर्निर्देशित किया जाएगा


2

जैसा कि पहले बताया गया है, क्रोन जॉब्स लॉग इन हो जाते हैं /var/log/syslog

आप srelog को grep पर पाइप कर सकते हैं और इस तरह CRON लॉग को फ़िल्टर कर सकते हैं

less /var/log/syslog | grep CRON 

आप इस तरह से अपने crontab लॉग के माध्यम से खोज कर सकते हैं

less /var/log/syslog | grep CRON | grep <search-keyword-comes-here>

आप अपने crontab इतिहास लॉग के माध्यम से खोज सकते हैं जैसे कि gz फ़ाइलों में संग्रहीत

less /var/log/syslog.2.gz | grep CRON | grep <search-keyword-comes-here>

इसका हमेशा एक लॉगिंग तंत्र के लिए अच्छा माना जाता है, आप अपने सर्वर के लिए जल्दी से ELK सेटअप कर सकते हैं, आप लॉगजी के साथ भी प्रयोग कर सकते हैं ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.