क्या कोई लॉग है जो लिनक्स में शटडाउन रिकॉर्ड करता है?


38

मैं सोच रहा था कि क्या लिनक्स में एक लॉग फ़ाइल है जो हर बार कंप्यूटर बंद होने पर रिकॉर्ड करती है?

मैं जिस कारण से पूछ रहा हूं वह यह है कि मैं कुछ परीक्षण कर रहा हूं जिसमें कुछ शर्तों के तहत मेरी लैपटॉप की बैटरी कितनी देर तक चलती है। लगभग 10 मिनट की बैटरी पावर शेष होने पर मेरा लैपटॉप स्वचालित रूप से बंद होने के लिए कॉन्फ़िगर किया गया है, इसलिए यदि कहीं एक लॉग फ़ाइल है जो कंप्यूटर बंद होने पर रिकॉर्ड करती है, तो इससे मेरा परीक्षण बहुत आसान हो जाएगा।

मैं Ubuntu 10.04 चला रहा हूं। धन्यवाद!

जवाबों:


15

/var/log/messagesफ़ाइल वास्तव में इसे में शटडाउन से संबंधित कुछ उदाहरण मेरा के लिए होना चाहिए (CentOS 5) इस तरह लाइनों है:

Jul 18 23:00:13 nero shutdown[2649]: shutting down for system halt
...
Jul 18 23:00:27 nero kernel: Kernel logging (proc) stopped.
Jul 18 23:00:27 nero kernel: Kernel log daemon terminating.

यह सुनिश्चित करने के लिए कि लॉग वहां जा रहे हैं, अपने /etc/syslog.confया /etc/rsyslog.confउसके बराबर की जाँच करें । लॉग फ़ाइलों को पढ़ने के लिए आपको संभवतः विशेषाधिकारों की आवश्यकता होगी।

इसके अलावा, जब तक यह प्रति बंद नहीं होता है, "अंतिम" कमांड को रिबूट की रिपोर्ट करनी चाहिए।

क्या आपके द्वारा पिछली बार बंद किए जाने के आसपास लॉग में वास्तव में कुछ भी नहीं है?

आपके परीक्षण के लिए, ध्यान रखें कि आपका कंप्यूटर केवल यह जानता है कि बैटरी की सूचना देने के कारण 10 मिनट बचे हैं, जो सटीक हो सकता है या नहीं। शटडाउन की प्रतीक्षा करने के बजाय आप सीधे एसीपीआई की जानकारी देख सकते हैं। मेरे लैपटॉप पर यह यहाँ है:

/proc/acpi/battery/BAT0/

वहां, "स्थिति" और "जानकारी" फाइलें दिलचस्प लगती हैं। आप अपनी लैपटॉप चला रहे हैं, यह देखने के लिए कि आप कितनी जल्दी अपने लैपटॉप चला रहे हैं, आप स्टेट फाइल में शेष क्षमता देख सकते हैं।


3
जब तक मैं इसे याद नहीं कर रहा हूं, मुझे किसी भी तरह के "शट डाउन" संदेश को / var / log / संदेश में दिखाई नहीं देता है। संदेश "कर्नेल लॉगिंग (खरीद) बंद हो गया" कभी-कभी दिखाई देता है, लेकिन हमेशा नहीं। हालाँकि, चल रहा last -xकाम करता है। यह कमांड एक पंक्ति प्रदर्शित करता है जो निम्न की तरह दिखता है: shutdown system down 2.6.32-23-generi Sun Jul 25 09:12 - 19:00 (-14815+-13: बैटरी जानकारी टिप के लिए धन्यवाद। मेरे सिस्टम में यह भी है, इसलिए मुझे इसकी जांच करनी होगी! ऐसा लगता है कि इन फ़ाइलों को हर 5 सेकंड में अपडेट किया जाता है। धन्यवाद!
माइकल

एक बार फिर धन्यवाद। मेरे परिणाम यहाँ हैं: mangstructionular.blogspot.com/2010/07/…
माइकल


5

सबसे पहले, मुझे यह कहकर शुरू करें कि मुझे पता है कि यह एक पुराना धागा है। मैं केवल इसलिए टिप्पणी करता हूं कि अन्य लोग जो नेट के चारों ओर घूमते हुए इसे पाते हैं (जैसा कि मैंने आज किया) का स्पष्ट उत्तर होगा।

दूसरा, कृपया ध्यान दें कि निम्न कमांड खराब अभ्यास है और "बिल्ली के बेकार उपयोग" (इसके लिए Google खोज) श्रेणी के अंतर्गत आता है ...

cat /var/log/messages | grep "`LC_ALL=en_en.utf8 date +"%b %e"`"

उस लाइन को बदल दिया जाना चाहिए:

grep "`LC_ALL=en_en.utf8 date +"%b %e"`" /var/log/messages

grep, और अधिकांश यूनिक्स / लिनक्स कमांड्स (sed, awk, etc ...) उस मामले के लिए बिल्ली को एक फाइल कंटेंट पढ़ने की आवश्यकता नहीं है। यह एक तर्क के रूप में पारित करने के लिए कमांड के बाद फ़ाइल पथ और नाम रखने के लिए पर्याप्त है। एक पाइप और एक अन्य बाहरी कमांड (बिल्ली) जोड़ना केवल समय और संसाधनों को बर्बाद करना है।

अंत में, जहां सिस्टम शटडाउन और / या रिबूट का रिकॉर्ड ढूंढना है, वहां अंतिम कमांड का उपयोग करें क्योंकि यह वही है जो इसके लिए है। यह सभी लॉगिन / लॉगआउट प्रविष्टियों के लिए / var / log / wtmp लॉग फ़ाइल को पढ़ता है। क्योंकि शटडाउन और रिबूट वास्तव में एक सिस्टम स्तर लॉगिन / लॉगआउट घटना है, वे यहां दर्ज हैं। रूट कंसोल शटडाउन के लिए भी यही लागू होता है, यह एक लॉगआउट इवेंट है।

उदाहरण:

last -5 reboot shutdown root

यह आपको wtmp लॉग में अंतिम 5 रिबूट, शटडाउन, और रूट (कंसोल शटडाउन शामिल) प्रविष्टियां देगा।

परिणाम:

reboot    ~                         Mon Mar 23 14:51
shutdown  ~                         Mon Mar 23 14:49
root      console                   Mon Mar 23 14:49 - shutdown  (00:00)
reboot    ~                         Mon Mar 16 09:54
shutdown  ~                         Thu Mar 12 17:41

मुझे आशा है कि यह किसी को भी मदद करता है जो इस धागे के पार ठोकर खाता है। :-)


वैकल्पिक रूप से बस last -xया last -F -R -x runlevel। उबंटू के तहत बैटरी की निगरानी के उद्देश्य से, grep hooks /var/log/pm-suspend.logसस्पेंड और फिर से शुरू करने के लिए भी उपयोगी हो सकता है। दुर्भाग्य से, pm-powersave.log एसी पावर को स्टोर नहीं करती है (जब तक कि आप अपना हुक नहीं जोड़ते हैं)। help.ubuntu.com/community/PowerManagement/ReducedPower पढ़ने लायक हो सकता है।
सेड्रिक नाइट

UUoC के बारे में, $ CPU समय << $ ब्रेन टाइम ...
21

1
प्रत्येक व्यक्ति "बिल्ली के बेकार उपयोग" का उल्लेख करता है, संभवतः इस तथ्य को इंगित करने के लिए अधिक समय बिता रहा है कि पृथ्वी पर सभी कंप्यूटरों द्वारा बिल्ली के बेकार उपयोगों पर खर्च किए जाने वाले कुल सीपीयू समय (और कभी-कभी वे अनावश्यक रूप से अपने अन्यथा अच्छे उत्तर को एक दुष्प्रभाव के रूप में ब्लोट करते हैं - - इस तरह से)
ndemou

4

/ Var / log / संदेश फ़ाइल में यह जानकारी होनी चाहिए


मुझे उस फ़ाइल को बंद करने से संबंधित कुछ भी दिखाई नहीं दिया। :( मैंने उस समय की टाइमस्टैम्प का उपयोग करके कंप्यूटर को बंद करते हुए उस निर्देशिका की अन्य सभी फाइलों को हटाने की कोशिश की, लेकिन कोई किस्मत नहीं:grep -r "Jul 24 14:" /var/log/*
माइकल

फ़ाइल linux टकसाल दोस्त 17 पर मौजूद नहीं है।
एरिक वांग

2

यदि आप इस बात पर नज़र रखना चाहते हैं कि आपका कंप्यूटर कितने समय से ऊपर है, तो आप अपटेड जैसी किसी चीज़ का उपयोग कर सकते हैं।

यह एक प्रोग्राम है जिसे अपकॉर्डर्स कहा जाता है जो आपको दिखाता है कि आपका कंप्यूटर कितने समय से है।


1

वर्तमान दिन के सभी संदेशों को सूचीबद्ध करने के लिए यहां एक-लाइनर है:

cat /var/log/messages | grep "`LC_ALL=en_en.utf8 date +"%b %e"`"

यह CentOS पर परीक्षण किया गया था इसलिए YMMV।

और निश्चित रूप से ( last rebootऔर last shutdownजैसा कि उल्लेख किया गया है), लेकिन यह मेरी जरूरतों के लिए बहुत सरल है (केवल तिथियाँ प्रदान करता है)।


1

last reboot मेरे लिए CentOS 6.7 पर काम किया।

वर्ष को आउटपुट में दिखाने के लिए, इसलिए यह वास्तव में समझ में आता है यदि आपके पास एक वर्ष से अधिक का रिकॉर्ड है, तो करें

last -F reboot

हालांकि मैं इकट्ठा करता हूं कि -F स्विच सोलारिस की तरह कुछ प्रणालियों पर काम नहीं करता है। यह जाहिरा तौर पर GNU के अंतिम का हिस्सा है, हालांकि।

आभार https://unix.stackexchange.com/a/97597/174520


0

यदि कोई लॉग मौजूद नहीं है, तो आप शटडाउन स्क्रिप्ट में कुछ 'तारीख >> मायलॉग' जोड़ने की कोशिश कर सकते हैं (कुछ डिस्ट्स में, इसे rc.shutdown कहा जाता है)

या, बिना जरूरत के भी एक रास्ता है। चलाएँ:

while [ 1 ];do sleep 5;date>mylog;sync;done

और अगले सत्र पर पूंछ mylog।

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