सवाल क्रॉन / क्रोंटब लॉग कहां है?


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

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


613
2017-08-11 12:06


मूल




जवाब:


एक डिफ़ॉल्ट स्थापना पर क्रॉन नौकरियां लॉग इन हो जाती हैं

/var/log/syslog

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

 grep CRON /var/log/syslog

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


722
2017-08-12 10:58



यदि कोई एमटीए स्थापित नहीं है, तो क्रॉन सिर्फ नौकरी आउटपुट को फेंक देता है। - Barry Kelly
क्रॉन लॉग में दूसरी फाइल में हो सकता है /var/log/ निर्देशिका। Cron.log या समकक्ष के लिए जाँच करें। - Navigatron
यह मुझे नौकरी से आउटपुट नहीं देता है। यह सिर्फ एक सामान्य संदेश देता है कि क्रॉन संसाधित किया गया था। - chovy
एडब्ल्यूएस पर यह / var / log / cron था - tsukimi
@ शादी आप भी कर सकते हैं grep -i CRON मामला असंवेदनशील खोजने के लिए - nafg


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

फ़ाइल खोलें

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

जिस लाइन से शुरू होता है उसे ढूंढें:

#cron.*

उस रेखा को असम्बद्ध करें, फ़ाइल को सहेजें, और rsyslog को पुनरारंभ करें:

sudo service rsyslog restart

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

/var/log/cron.log

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

ध्यान दें कि cron.log में आप cret को /etc/cron.hourly में crrip चलाते समय प्रविष्टियों को देखेंगे, 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

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


197
2018-04-13 01:36



मेरी राय के साथ, भविष्य में यह जवाब बेहतर है। तो आपकी syslog फ़ाइल अधिक स्पष्ट है। - shgnInc
Syslog से क्रॉन लॉग को बाहर करने के लिए आप लाइन बदल सकते हैं *.*;auth,authpriv.none -/var/log/syslog सेवा मेरे *.*;auth,authpriv.none,cron.none -/var/log/syslog। - Koen.
हमारे CentOS 6 पर, cron। * /Etc/rsyslog.conf में परिभाषित किया गया है, जबकि मैं rsyslog.d फ़ोल्डर में खाली है। - Scott Chu
क्या है 2>&1 पक्ष में ? - John Joe
@JohnJoe 2> & 1 का उपयोग stderr को stdout को अग्रेषित करने के लिए किया जाता है, इस तरह आप लॉग फ़ाइल में stderr भी प्राप्त करेंगे। - Sampo Sarrala


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

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

67
2018-05-14 07:34



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


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

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

24
2018-04-01 15:26



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


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

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

crond -nx test

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


7
2018-06-17 17:42



14.04 पर नहीं चलता है - No command 'crond' found, did you mean: Command 'cron' from package 'cron' (main) - G-.


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

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

यह क्यू एंड ए प्रक्रिया का वर्णन करता है:

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

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

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

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


5
2017-10-22 06:40





आप cron के आउटपुट को एक tmp फ़ाइल में रीडायरेक्ट कर सकते हैं

जैसे कि: 00 11 07 * * / bin / bash /home/ubuntu/command.sh> / tmp / output 2> और 1

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


1
2018-05-07 11:27