क्या tail -f log.txt
जैसी लॉग फ़ाइल की निगरानी करने का कोई सस्ता तरीका है, तो [error]
जैसा कुछ दिखाई देता है, तो कमांड निष्पादित करें?शैलस्क्रिप्ट एक लॉग फ़ाइल की निगरानी करने के लिए यदि कीवर्ड ट्रिगर करता है तो कमांड निष्पादित करता है?
धन्यवाद।
क्या tail -f log.txt
जैसी लॉग फ़ाइल की निगरानी करने का कोई सस्ता तरीका है, तो [error]
जैसा कुछ दिखाई देता है, तो कमांड निष्पादित करें?शैलस्क्रिप्ट एक लॉग फ़ाइल की निगरानी करने के लिए यदि कीवर्ड ट्रिगर करता है तो कमांड निष्पादित करता है?
धन्यवाद।
tail -fn0 logfile | \
while read line ; do
echo "$line" | grep "pattern"
if [ $? = 0 ]
then
... do something ...
fi
done
मैंने यह भी पाया है कि आप पैटर्न के लिए पर नजर रखने और कुछ कार्रवाई करने के लिए awk उपयोग कर सकते हैं जब पैटर्न पाया जाता है:
tail -fn0 logfile | awk '/pattern/ { print | "command" }'
यह आदेश निष्पादित करेंगे जब पैटर्न लॉग में पाया जाता है। कमांड स्क्रिप्ट स्क्रिप्ट या कुछ और सहित यूनिक्स कमांड हो सकता है।
एक और भी मजबूत दृष्टिकोण monit है। यह टूल बहुत सी चीजों की निगरानी कर सकता है, लेकिन उनमें से एक यह है कि यह आसानी से एक या अधिक लॉग को पूंछ देगा, रेगेक्स के खिलाफ मैच करेगा और फिर एक स्क्रिप्ट ट्रिगर करेगा। यह विशेष रूप से उपयोगी होता है यदि आपके पास लॉग फ़ाइलों का संग्रह देखने के लिए या एक से अधिक ईवेंट ट्रिगर करने के लिए है।
Simple Automated Solution that covers a lot of scenarios:
उपयोग:
logrobot localhost [default-dir],fixer,[exit-codes],[command/script-to-run-per-exit-code] [feature] [logfile] [age] [str-1] [str-2] [WARN] [CRIT] [tag] [option]
उदाहरण:
logrobot localhost /tmp/logXray,fixer,0y-1y-2y,0-uname,1-who,2-uptime autonda /var/log/kern.log 60m 'error' '.' 1 2 app_err_monitor -ndshow
इस टूल से
, आप एक लॉग फ़ाइल में विशिष्ट पैटर्न पर नजर रखने के लिए और फिर एक कमांड को गति प्रदान कर सकते हैं या स्क्रिप्ट जब पैटर्न मिलते हैं ... या नहीं मिला!
स्क्रिप्ट या आदेश थ्रेसहोल्ड और निकास कोड के आधार पर चलाने के लिए सेट किए जा सकते हैं।
उपकरण सीधे here डाउनलोड किया जा सकता है।
बैटर और सरल:
tail -f log.txt | egrep -m 1 "error"
echo "Found error, do sth."
...
इस कोड स्निपेट के लिए धन्यवाद, जो कुछ तत्काल सहायता प्रदान कर सकता है। एक उचित स्पष्टीकरण [बहुत सुधार होगा] (// meta.stackexchange.com/q/114762) दिखाकर इसका शैक्षिक मूल्य * क्यों * यह समस्या का एक अच्छा समाधान है, और भविष्य के पाठकों के लिए इसे और अधिक उपयोगी बना देगा, लेकिन समान नहीं, प्रश्न। स्पष्टीकरण जोड़ने के लिए कृपया अपना उत्तर संपादित करें, और संकेत दें कि कौन सी सीमाएं और धारणाएं लागू होती हैं। –
ओह, एक और बात, 'पूंछ -fn0 logfile' के बाद से HTTP सर्वर लॉग फ़ाइल जल्दी से नाम और gzip'ed कर रहे हैं की समय सीमा समाप्त होने लगता है। स्क्रिप्ट अभी भी पुरानी फाइल-डिस्क्रिप्टर की निगरानी करता है जो मुझे लगता है? क्या 'tail' कमांड के लिए कुछ समय बाद ऑटो इनलाइन फ़ाइल इनोड या कुछ अपडेट करने का कोई तरीका है? – est
बस पूंछ कमांड में एक --रीरी जोड़ें, या -f के बजाय -F का उपयोग करें। इससे हो जाना चाहिए। – Zizzencs
मेलिंग लाइनों को प्रदर्शित किए बिना रिटर्न कोड सेट करने के लिए 'grep -q' पर भी विचार करें। –