जवाबों:
केवल रूट विशेषाधिकार प्राप्त कार्यक्रम ही किसी प्रणाली को शालीनतापूर्वक बंद कर सकते हैं। इसलिए जब एक सिस्टम सामान्य तरीके से बंद हो जाता है, तो यह या तो रूट विशेषाधिकार वाला उपयोगकर्ता होता है या एक एसपीआई स्क्रिप्ट। दोनों मामलों में आप लॉग की जाँच करके पता लगा सकते हैं। एक एसीपी शटडाउन पावर बटन प्रेस, ओवरहीटिंग या कम बैटरी (लैपटॉप) के कारण हो सकता है। मैं तीसरा कारण भूल गया, यूपीएस सॉफ्टवेयर जब बिजली की आपूर्ति विफल हो जाती है, जो वैसे भी अलर्ट भेज देगा।
हाल ही में मेरे पास एक ऐसी प्रणाली थी, जो बार-बार बिना सोचे-समझे बंद करने के लिए शुरू हुई थी, यह पता चला कि यह बहुत गर्म था और मोबाइल को जल्दी से बंद करने के लिए कॉन्फ़िगर किया गया था। सिस्टम में लॉग्स को सहेजने का मौका नहीं था, लेकिन सौभाग्य से सिस्टम के तापमान की निगरानी करने से पता चलता है कि यह बंद होने से पहले ही बढ़ना शुरू हो गया था।
तो अगर यह एक सामान्य शटडाउन है, तो इसे लॉग इन किया जाएगा, अगर यह एक घुसपैठ है ... शुभकामनाएं, और यदि यह एक ठंडा शटडाउन है, तो आपके पर्यावरण को नियंत्रित करने और उसकी निगरानी करने का सबसे अच्छा मौका है।
निम्नलिखित आदेश आज़माएँ:
अंतिम रिबूट प्रविष्टियों की प्रदर्शन सूची:
last reboot | less
अंतिम शटडाउन प्रविष्टियों की प्रदर्शन सूची:
last -x | less
या अधिक सटीक:
last -x | grep shutdown | less
आपको नहीं पता होगा कि यह किसने किया था। यदि आप यह जानना चाहते हैं कि यह किसने किया है, तो आपको थोड़ा कोड जोड़ना होगा, जिसका अर्थ है कि आप अगली बार जानेंगे।
मैंने यह संसाधन ऑनलाइन पाया है। यह आपके लिए उपयोगी हो सकता है:
last -x shutdown
जाँच करने के लिए कुछ चीज़ें हैं:
इस कमांड को चलाएँ * और आउटपुट की तुलना नीचे के उदाहरणों से करें:
last -x | head | tac
एक सामान्य शटडाउन और पावर-अप इस तरह दिखता है (ध्यान दें कि आपके पास शटडाउन इवेंट है और फिर सिस्टम बूट इवेंट है):
runlevel (to lvl 0) 2.6.32- Sat Mar 17 08:48 - 08:51 (00:02)
shutdown system down ... <-- first the system shuts down
reboot system boot ... <-- afterwards the system boots
runlevel (to lvl 3)
कुछ मामलों में आप इसे देख सकते हैं (ध्यान दें कि शटडाउन के बारे में कोई रेखा नहीं है लेकिन सिस्टम रनलेवल 0 पर था जो "पड़ाव राज्य" है):
runlevel (to lvl 0) ... <-- first the system shuts down (init level 0)
reboot system boot ... <-- afterwards the system boots
runlevel (to lvl 2) 2.6.24-... Fri Aug 10 15:58 - 15:32 (2+23:34)
पावर लॉस से एक अप्रत्याशित शटडाउन इस तरह दिखता है (ध्यान दें कि आपके पास सिस्टम बूट इवेंट बिना पूर्व सिस्टम शटडाउन इवेंट के है):
runlevel (to lvl 3) ... <-- the system was running since this momemnt
reboot system boot ... <-- then we've a boot WITHOUT a prior shutdown
runlevel (to lvl 3) 3.10.0-693.21.1. Sun Jun 17 15:40 - 09:51 (18:11)
सबसे दिलचस्प लॉग संदेशों को फ़िल्टर करने के लिए एक बैश कमांड यह है:
grep -iv ': starting\|kernel: .*: Power Button\|watching system buttons\|Stopped Cleaning Up\|Started Crash recovery kernel' \
/var/log/messages /var/log/syslog /var/log/apcupsd* \
| grep -iw 'recover[a-z]*\|power[a-z]*\|shut[a-z ]*down\|rsyslogd\|ups'
जब एक अनपेक्षित पावर ऑफ या हार्डवेयर विफलता होती है, तो फाइल सिस्टम ठीक से अनमाउंट नहीं होगा इसलिए अगले बूट में आप इस तरह शामिल हो सकते हैं:
EXT4-fs ... INFO: recovery required ...
Starting XFS recovery filesystem ...
systemd-fsck: ... recovering journal
systemd-journald: File /var/log/journal/.../system.journal corrupted or uncleanly shut down, renaming and replacing.
जब सिस्टम शक्तियां बंद हो जाती हैं क्योंकि उपयोगकर्ता ने पावर बटन दबाया है, तो आपको इस तरह से लॉग मिलते हैं:
systemd-logind: Power key pressed.
systemd-logind: Powering Off...
systemd-logind: System is powering down.
केवल जब सिस्टम व्यवस्थित रूप से बन्द हो जाता है तो आपको इस तरह से लॉग मिलते हैं:
rsyslogd: ... exiting on signal 15
जब सिस्टम ओवरशूटिंग के कारण बंद हो जाता है तो आपको इस तरह से लॉग मिलते हैं:
critical temperature reached...,shutting down
यदि आपके पास एक यूपीएस है और बिजली और शटडाउन की निगरानी करने के लिए एक डेमॉन चल रहा है, तो आपको स्पष्ट रूप से इसके लॉग की जांच करनी चाहिए (एनयूटी लॉग ऑन / वर्जन / लॉग / मैसेज लेकिन एपीपीड्स लॉग ऑन / वर्जन / लॉग / एपिच्सड *)
टिप्पणियाँ
*: यहाँ last
अपने आदमी पृष्ठ से विवरण है :
last [...] prints information about connect times of users.
Records are printed from most recent to least recent.
[...]
The special users reboot and shutdown log in when the system reboots
or (surprise) shuts down.
हम head
नवीनतम 10 घटनाओं को रखने के लिए उपयोग करते हैं और हम tac
ऑर्डर को पलटने के लिए उपयोग करते हैं ताकि हम इस तथ्य से भ्रमित न हों कि पिछले सबसे कम से कम हाल की घटनाओं से प्रिंट होता है।
tac
कमांड के बिना फिर से होने से लाभ हो सकता है
कुछ संभावित लॉग फ़ाइलों का पता लगाने के लिए: (एक उबंटू प्रणाली मिला, लेकिन मुझे उम्मीद है कि वे सबसे लिनक्स / यूनिक्स सिस्टम पर मौजूद हैं)
/var/log/debug
/var/log/syslog (will be pretty full and may be harder to browse)
/var/log/user.log
/var/log/kern.log
/var/log/boot
फिर, ये लॉग फाइलें उबंटू सिस्टम पर मौजूद हैं, इसलिए फ़ाइल नाम अलग हो सकते हैं। tail
आदेश अपने दोस्त है।
last
सिस्टम शटडाउन प्रविष्टियों को प्रदर्शित करने और स्तर परिवर्तन और फ़िल्टरिंग को चलाने का उपयोग करके सरल करें shutdown
और reboot
:
last -x shutdown reboot
cat foo | grep bar
बनाम grep bar foo
तरह तरह से, ऐसा प्रतीत होता है कि अंतिम स्वयं को फ़िल्टर करने में सक्षम है।
मुझे डेबियन 7.8 पर एक समान आवश्यकता थी और निरीक्षण करें कि मूल रूप से लॉग में कोई स्पष्ट और स्पष्ट संदेश नहीं है, जो थोड़ा आश्चर्य की बात है।
ग्रीप के माध्यम से /var/log
मशीन के बंद होने का समय बताएगा, उचित डेमॉन शटडाउन आदि दिखाएगा, लेकिन प्रारंभिक कारण नहीं।
shutdown[25861]: shutting down for system halt
उल्लिखित अन्य समाधानों ( last -x
) ने बहुत मदद नहीं की।
पढ़ना /etc/acpi/powerbtn-acpi-support.sh
जिसमें शामिल हैं:
अगर [-x /etc/acpi/powerbtn.sh]; फिर # एसपीआईडी पैकेज से पुराने कॉन्फिग स्क्रिप्ट के साथ संगतता /etc/acpi/powerbtn.sh elif [-x /etc/acpi/powerbtn.sh.dpkg-bak]; फिर # एसपीआईडी पैकेज से पुराने कॉन्फिग स्क्रिप्ट के साथ संगतता # जो अभी भी आसपास है क्योंकि इसे व्यवस्थापक द्वारा बदल दिया गया था /etc/acpi/powerbtn.sh.dpkg-bak अन्य # सामान्य हैंडलिंग। / sbin / shutdown -h -P - अब "पावर बटन दबाया गया" फाई
ध्यान दें कि एक स्पष्ट पाठ shutdown
कमांड के पैरामीटर के रूप में दिया गया है । मुझे उम्मीद है कि शटडाउन प्रोग्राम द्वारा स्ट्रिंग को स्वचालित रूप से लॉग इन किया जाएगा।
वैसे भी, एक स्पष्ट संदेश प्राप्त करने के लिए मैंने नीचे दिए गए पाठ को मूल के रूप में एक नए बनाए /etc/acpi/powerbtn.sh
गए निष्पादन योग्य के साथ रखाchmod a+x /etc/acpi/powerbtn.sh
#! / Bin / श लकड़हारा /etc/acpi/powerbtn.sh में, संभवतः "पावर बटन दबाया गया" / sbin / shutdown -h -P - अब "पावर बटन दबाया गया"
इस तरह से करना संभवत: संशोधित करने की तुलना में एक लंबे समय तक चलने वाला बदलाव होगा /etc/acpi/powerbtn-acpi-support.sh
। बाद वाला विकल्प संभवतः पैकेज के अगले उन्नयन पर अपना प्रभाव खो देगा acpi-support-base
।
उबंटू 14.04 की तुलना में नोटिस यह अलग तरह से करता है ( /etc/acpi/powerbtn.sh
पहले से ही acpid
पैकेज से अलग सामग्री के साथ मौजूद है )। इसके अलावा, डेबियन 8 शायद इसे अलग तरीके से करता है। बेझिझक वेरिएंट पेश करें।
और अब जब पावर बटन दबाया जाता है, नीचे की तरह एक लाइन में प्रकट होता है /var/log/messages
, /var/log/syslog
और /var/log/user.log
:
logger: in /etc/acpi/powerbtn.sh, presumably Power button pressed
अब लॉग में एक स्पष्ट संदेश है।
acpi-support-base
और acpid
पैकेजों पर विचार करने के सुझाव के लिए @Bielecki का धन्यवाद । मैंने अपना परीक्षण नहीं किया है। क्या आप यह बता सकते हैं कि किस वितरण और संस्करण पर इसका लाभ मिलता है?
मेरे पास सिर्फ एक भद्दा विचार है, लेकिन शायद यह आपके लिए काम करता है: कमांड दर्ज करें last
और सभी उपयोगकर्ताओं के लिए लॉगिन informations की जांच करें। उसके बाद, halt
उस समय के लिए आवश्यक अनुमति वाले फ़िल्टर उपयोगकर्ताओं को उस समय लॉग इन किया गया था। फिर उनकी .bash_history
फ़ाइल देखें कि उन्होंने पड़ाव डाला है या नहीं।
मेरे मामले में मुझे ओवरहीटिंग की समस्या थी और / g / var / log फ़ोल्डर में 'grep shut *' द्वारा लॉग / in / var / log / syslog मिला।
लॉग की गई त्रुटि यह थी:
Feb 23 15:59:49 luca-LIFEBOOK-A530 kernel: [24746.497174] thermal thermal_zone0: critical temperature reached(99 C),shutting down
मेरे केवीएम वीएम पर उसमें चिप (जहां मैंने सोचा था कि क्या एक मेजबान रिबूट ने मेहमानों को साफ बंद किया था), मैंने पाया कि मुझे क्या दिखाने की जरूरत है /var/log/auth.log
( last -x shutdown
उसी को दिखाने के अलावा )। इन पंक्तियों में दिखाया गया है:
Sep 3 23:56:31 Web systemd-logind[531]: Power key pressed.
Sep 3 23:56:31 Web systemd-logind[531]: Powering Off...
Sep 3 23:56:31 Web systemd-logind[531]: System is powering down.
Sep 3 23:55:45 Web systemd-logind[591]: New seat seat0.
Sep 3 23:55:45 Web systemd-logind[591]: Watching system buttons on /dev/input/event0 (Power Button)
Sep 3 23:55:54 Web sshd[805]: Server listening on 0.0.0.0 port 22.
Sep 3 23:55:54 Web sshd[805]: Server listening on :: port 22.
last -x
इन पंक्तियों को दिखाता है, ध्यान दें कि वे सबसे हालिया-प्रथम क्रम में मुद्रित किए जा रहे हैं (यानी अंतिम पंक्ति पहले पढ़ें, और फिर ऊपर जाएं), लेकिन घड़ी के रीसेट के कारण (बूट से पहले 23:56, 23:55 के बाद) पिछली लाइनों में भी स्पष्ट है, यह आदेश थोड़ा चौंकाने वाला लगता है:
runlevel (to lvl 2) 3.13.0-129-gener Sun Sep 3 23:55 - 22:04 (22:08)
reboot system boot 3.13.0-129-gener Sun Sep 3 23:55 - 22:04 (22:08)
shutdown system down 3.13.0-123-gener Sun Sep 3 23:56 - 23:55 (00:00)
runlevel (to lvl 0) 3.13.0-123-gener Sun Sep 3 23:56 - 23:56 (00:00)
मेरे हिस्से के लिए, यह जांचना कि मेहमान बूट होने पर सफाई से बंद हो जाते हैं, मैं भी मेहमानों में से एक में लॉग इन (ssh) कर सकता हूं, और जब मैं होस्ट को बूट करता हूं, तो टर्मिनल में इन पंक्तियों को प्राप्त करना:
root@Web:~#
Broadcast message from root@Web
(unknown) at 22:25 ...
The system is going down for power off NOW!
Connection to web closed by remote host.
Connection to web closed.
एक स्क्रिप्ट को बंद करने के
लिए स्क्रिप्ट को मूल बंद करने योग्य निष्पादन
BUT इत्यादि सभी मापदंडों को देना चाहिए : स्क्रिप्ट इस पर लॉग इन करती है
last -x
)
cat /usr/adm/syslog
मेरे मामले में यह सर्वर को बंद करने वाला अप सॉफ्टवेयर था।
/etc/rc.d/7/upsd.boot
/var/log/acpid
: बिजली बटन हिट हो गया था। किसी भी अन्य विचारों, जहां अगर acpid एक सुराग नहीं देता है देखने के लिए?