มีบันทึกที่บันทึกการปิดระบบใน Linux หรือไม่


38

ฉันสงสัยว่ามีไฟล์บันทึกใน Linux ซึ่งบันทึกทุกครั้งที่ปิดเครื่องคอมพิวเตอร์หรือไม่?

เหตุผลที่ฉันถามคือฉันกำลังทำการทดสอบบางอย่างเกี่ยวกับระยะเวลาแบตเตอรี่แล็ปท็อปของฉันเป็นเวลานานภายใต้เงื่อนไขบางประการ แล็ปท็อปของฉันได้รับการกำหนดค่าให้ปิดเครื่องโดยอัตโนมัติเมื่อเหลือพลังงานแบตเตอรี่ประมาณ 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เทียบเท่าเพื่อให้แน่ใจว่ามีการบันทึก คุณอาจต้องใช้สิทธิ์รูทเพื่ออ่านไฟล์บันทึก

นอกจากนี้แม้ว่าจะไม่ปิดเครื่องต่อ se คำสั่ง "last" ควรรายงานการรีบูต

ไม่มีอะไรในบันทึกในช่วงเวลาที่คุณปิดระบบครั้งล่าสุดหรือไม่?

สำหรับการทดสอบของคุณโปรดจำไว้ว่าคอมพิวเตอร์ของคุณรู้ว่าเหลือเวลาอีก 10 นาทีเท่านั้นเนื่องจากข้อมูลแบตเตอรี่กำลังรายงานซึ่งอาจจะแม่นยำหรือไม่ถูกต้อง แทนที่จะรอการปิดเครื่องคุณสามารถดูข้อมูล ACPI ได้โดยตรง บนแล็ปท็อปของฉันอยู่ที่นี่:

/proc/acpi/battery/BAT0/

ในนั้นไฟล์ "สถานะ" และ "ข้อมูล" ดูน่าสนใจ คุณสามารถดูความจุที่เหลือในไฟล์สถานะในขณะที่ใช้งานแล็ปท็อปของคุณภายใต้เงื่อนไขต่าง ๆ เพื่อดูว่ามันลดลงเร็วแค่ไหน


3
ฉันจะไม่เห็นข้อความ "กำลังปิด" ใน / var / log / messages บางครั้งข้อความ "การบันทึกเคอร์เนล (proc) หยุด" ปรากฏขึ้น แต่ไม่เสมอไป อย่างไรก็ตามการเรียกใช้last -xงานได้ คำสั่งนี้แสดงบรรทัดที่มีลักษณะดังนี้: shutdown system down 2.6.32-23-generi Sun Jul 25 09:12 - 19:00 (-14815+-13: ขอบคุณสำหรับเคล็ดลับข้อมูลแบตเตอรี่ ระบบของฉันมีสิ่งนี้ด้วยดังนั้นฉันจะต้องลองดู! ดูเหมือนว่าจะอัปเดตไฟล์เหล่านี้ทุก 5 วินาทีหรือมากกว่านั้น ขอบคุณ!
Michael

ขอบคุณอีกครั้ง. ผลลัพธ์ของฉันอยู่ที่นี่: mangstacular.blogspot.com/2010/07/ …
Michael


5

ก่อนอื่นให้ฉันเริ่มด้วยการบอกว่าฉันรู้ว่านี่เป็นเธรดที่เก่ากว่า ฉันแค่แสดงความคิดเห็นเพื่อให้คนอื่นที่พบสิ่งนี้ในขณะที่แหย่รอบ ๆ เน็ต (เหมือนที่ฉันทำในวันนี้) จะมีคำตอบที่ชัดเจน

ประการที่สองโปรดทราบว่าคำสั่งต่อไปนี้เป็นการฝึกหัดที่ไม่ดีและอยู่ในหมวดหมู่ "การใช้แมวไร้ประโยชน์" (google search for it) ...

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 และ unix / linux ส่วนใหญ่ (sed, awk, etc ... ) สำหรับเรื่องนั้นไม่ต้องการให้ cat อ่านเนื้อหาของไฟล์ มันเพียงพอที่จะวางเส้นทางไฟล์และชื่อหลังจากคำสั่งที่จะผ่านมันเป็นข้อโต้แย้ง การเพิ่มไพพ์และคำสั่งภายนอกอื่น (cat) เป็นเพียงการเสียเวลาและทรัพยากร

ในที่สุดสำหรับตำแหน่งที่จะค้นหาเร็กคอร์ดของการปิดระบบและ / หรือรีบูตให้ใช้คำสั่งสุดท้ายเนื่องจากเป็นสิ่งที่มันมีความหมาย มันอ่านไฟล์บันทึกการทำงาน / var / log / wtmp สำหรับรายการล็อกอิน / ล็อกเอาต์ทั้งหมด เนื่องจากการปิดและการเริ่มระบบใหม่เป็นเหตุการณ์ระดับการเข้าสู่ระบบ / ออกจากระบบจริงจึงถูกบันทึกไว้ที่นี่ เช่นเดียวกับการปิดระบบรูทคอนโซลมันเป็นเหตุการณ์การออกจากระบบ

ตัวอย่าง:

last -5 reboot shutdown root

สิ่งนี้จะให้รายการรีบูตปิดและรูท 5 ครั้งล่าสุด (รวมการปิดระบบคอนโซล) ในบันทึก wtmp

ผล:

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สำหรับวัตถุประสงค์ในการตรวจสอบแบตเตอรี่ภายใต้ Ubuntu grep hooks /var/log/pm-suspend.logอาจมีประโยชน์ในการแสดงการหยุดชั่วคราวและการดำเนินการต่อ น่าเสียดายที่ pm-powersave.log ไม่เก็บเวลาเชื่อมต่อไฟ AC (เว้นแต่คุณจะเพิ่ม hook ของคุณเอง) help.ubuntu.com/community/PowerManagement/ReducedPowerอาจคุ้มค่าที่จะอ่าน
Cedric Knight

เกี่ยวกับ UUoC เวลา $ CPU << $ เวลาสมอง ...
MikeP

1
แต่ละคนพูดถึง "การใช้ประโยชน์จากแมว" อาจใช้เวลามากกว่าที่จะชี้ให้เห็นความจริงมากกว่าเวลา CPU ทั้งหมดที่ใช้ในการใช้แมวโดยคอมพิวเตอร์ทุกเครื่องบนโลก (และบางครั้งพวกเขาไม่จำเป็นต้องขยายคำตอบที่ดี - แบบนี้)
ndemou

4

ไฟล์ / var / log / messages ควรมีข้อมูลนี้


ฉันไม่เห็นสิ่งใดในไฟล์ที่เกี่ยวข้องกับการปิดระบบ :( ฉันพยายาม grepping ไฟล์อื่น ๆ ทั้งหมดในไดเรกทอรีที่ใช้เวลาประทับเวลาที่ฉันปิดคอมพิวเตอร์ แต่ไม่มีโชค:grep -r "Jul 24 14:" /var/log/*
Michael

ไฟล์ไม่มีอยู่ใน linux mint mate 17.
Eric Wang

2

หากคุณต้องการติดตามว่าคอมพิวเตอร์ของคุณใช้งานได้นานเท่าไหร่ในอดีตคุณสามารถใช้งานบางอย่างที่มีการปรับปรุง

มันมาพร้อมกับโปรแกรมที่เรียกว่า uprecords ซึ่งจะแสดงระยะเวลาที่คอมพิวเตอร์ของคุณเปิดใช้งาน


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 ไม่ทำงานในบางระบบเช่น Solaris เห็นได้ชัดว่ามันเป็นส่วนหนึ่งของ GNU ล่าสุด

ขอบคุณhttps://unix.stackexchange.com/a/97597/174520


0

หากไม่มีบันทึกอยู่คุณอาจลองเพิ่ม 'date >> mylog' ลงในสคริปต์การปิดระบบ (ในบางช่วงจะเรียกว่า rc.shutdown)

หรือยังมีวิธีที่ไม่จำเป็นต้องมีชัย วิ่ง:

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

และปรับแต่ง mylog ในเซสชันถัดไป

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.