วิธีการหาเวลาในการทำงานตั้งแต่การปลุกครั้งสุดท้ายจากโหมดสแตนด์บาย


29

ฉันต้องการทราบช่วงเวลาการใช้งานตั้งแต่การปลุกครั้งสุดท้ายจากโหมดสแตนด์บาย

คำสั่งuptimeจะแสดงความแตกต่างระหว่างเวลาปัจจุบันลบด้วยเวลาเริ่มต้นครั้งล่าสุดเท่านั้น

คำตอบ:


30

ใน/var/log/pm-suspend.logค้นหาบรรทัดสุดท้ายที่มีลักษณะดังนี้:

Sun Dec 16 09:30:31 CET 2012: Awake.

นั่นเป็นเวลาปลุกครั้งสุดท้ายของคุณ คุณสามารถคำนวณเวลาใช้งานของคุณตั้งแต่นั้นมาตามที่ Paul แนะนำ

บันทึกของคุณlogrotateจะ "หมุนเวียน" เป็นระยะเพื่อป้องกันไม่ให้ไฟล์มีขนาดใหญ่เกินไปดังนั้นคุณอาจพบpm-suspend.logไฟล์ว่างเปล่า ในกรณีนี้ให้มองหาpm-suspend.log.1ไฟล์ (คุณอาจพบไฟล์บันทึกอื่น ๆ ที่มีชื่อเช่นpm-suspend.log.2.gzและอื่น ๆ คุณสามารถตรวจสอบได้โดยใช้zcatหรือzless)


สิ่งนี้ใช้ได้กับฉัน
Jacek Pietal

5
เกิดอะไรขึ้นถ้าpm-suspend.logว่างเปล่า :(
cprn

1
หากคุณสนใจที่จะระงับการประทับเวลาให้ใช้:cat /var/log/pm-suspend.log /var/log/pm-suspend.log.1 | grep -B1 Awake; echo "--"; zcat /var/log/pm-suspend.log.*.gz | grep -B1 Awake
webbertiger

2
ไม่มีไฟล์ดังกล่าวในคอมพิวเตอร์ของฉัน (ใช้งาน Ubuntu 16.04 LTS)
Ramon Suarez

ไฟล์จะปรากฏต่อเมื่อคุณติดตั้ง pm-suspend แต่ตัวอย่างเช่น Kubuntu ก็เข้าสู่สถานะระงับหลังจากที่ฉันปิดโน้ตบุ๊ก จากนั้นไฟล์ pm-suspend จะว่างเปล่า
dmatej

15

สำหรับเดสก์ท็อป / เซิร์ฟเวอร์ที่รัน systemd ในขณะที่ไม่มีคำสั่งโดยตรงที่จะบอกข้อมูลโดยตรง (เท่าที่ฉันทราบ) ข้อมูลทั้งหมดจะถูกบันทึกในเจอร์นัล

คุณสามารถพิมพ์วารสารได้เช่น:

echo ">> [SUSPEND] Times during current boot"
journalctl -b 0 |grep "]: Suspending system..."
echo ">> [WAKE] Times during current boot"
journalctl -b 0 |grep "PM: Finishing wakeup"

หรือสำหรับผลลัพธ์แฟนซีฉันเขียนสคริปต์ python3 (ทำงานได้ดีกับ Fedora 23) ผลลัพธ์ตัวอย่าง:

Initial Boot Timestamp:  2016-01-15 09:31:32 

     Wake Timestamp     |    Suspend Timestamp   |       Awake Time       |
  --------------------  |  --------------------  |  --------------------  |
   2016-01-15 09:31:32  |   2016-01-15 09:36:03  |          0h  4m        |
   2016-01-15 09:36:22  |   2016-01-15 19:15:04  |          9h 38m        |
   2016-01-15 19:22:21  |   2016-01-15 20:00:05  |          0h 37m        |
   ...
   -------------------  |  --------------------  |  --------------------  | 

Summary: Days Since Boot [8.23] | Days Awake [4.14] | Suspend/Wake Cycles: [28]

สคริปต์อยู่ใน GitHub เชื่อมโยงไปยัง GitHub repo


1
สิ่งนี้ใช้ได้กับฉันใน Ubuntu 16.04
raphinesse

ดีใจที่ได้ทราบว่าเราสามารถตรวจสอบบันทึกประจำวัน
Shiplu Mokaddim

ใช้journalctl -b 0 -o short-iso MESSAGE="PM: Finishing wakeup." | tail -1 | cut -d" " -f1สำหรับช่วงเวลาของการปลุกครั้งสุดท้ายเท่านั้น
raphinesse

13

โปรแกรม pm-suspend ไม่ใช่ตัวเลือกเดียวในการระงับคอมพิวเตอร์ บันทึกของฉันของโปรแกรมนี้ว่างเปล่า แต่ฉันพบคำสั่งที่เชื่อถือได้มากขึ้น:

cat /var/log/syslog | grep 'systemd-sleep' | grep "Suspending\|resumed"

และผลลัพธ์คือ:

Oct  2 09:11:48 dmatej-lenovo systemd-sleep[931]: Suspending system...
Oct  2 09:53:10 dmatej-lenovo systemd-sleep[931]: System resumed.
Oct  2 15:02:48 dmatej-lenovo systemd-sleep[27516]: Suspending system...
Oct  2 16:07:19 dmatej-lenovo systemd-sleep[27516]: System resumed.
Oct  2 16:32:48 dmatej-lenovo systemd-sleep[29622]: Suspending system...
Oct  2 17:16:41 dmatej-lenovo systemd-sleep[29622]: System resumed.
Oct  3 00:24:58 dmatej-lenovo systemd-sleep[21316]: Suspending system...
Oct  3 08:17:22 dmatej-lenovo systemd-sleep[21316]: System resumed.
Oct  3 09:09:25 dmatej-lenovo systemd-sleep[24739]: Suspending system...
Oct  3 09:50:47 dmatej-lenovo systemd-sleep[24739]: System resumed.

1

แก้ไขการตรวจสอบที่ดีขึ้นของคำตอบขั้นตอน

grep ': Awake' /var/log/pm-suspend.log

แก้ไข haha ​​ขอบคุณสำหรับความคิดเห็น: D


และคุณได้รับประโยชน์จากการใช้catจุด!
gniourf_gniourf

ไม่มี upvotes สำหรับการใช้ 'cat' ที่ไร้ประโยชน์
Magellan

1

ฉันไม่มี pm-suspend.log ในเครื่องของฉัน

สิ่งนี้ใช้ได้กับฉัน:

/usr/bin/pmset -g log | grep Wake | grep "due to" | tail -n1

ยังบอกว่าสิ่งที่ตื่นคอมพิวเตอร์ขึ้นมา :-)


1
จะทำอย่างไรถ้าไม่pmsetพบคำสั่งและไม่มีไฟล์ดังกล่าวpmsetและpm-suspend.logว่างเปล่า? :(
cprn

pm-suspend.logหายไปและมันใช้งานได้สำหรับฉัน (บน iMac ของฉัน)
dayuloli

1
สำหรับ Mac เท่านั้น
plaisthos

0

คุณใช้อะไรเพื่อเริ่มต้นการสแตนด์บาย

หากคุณสามารถใช้สคริปต์แล้วหลังจากบรรทัด

echo -n "standby" > /proc/acpi/sleep

คุณสามารถมีสาย

echo `date +%s` >> /var/log/wakeups.log

หรือสิ่งที่คล้ายกัน นี่หมายความว่าสิ่งแรกที่เครื่องทำเมื่อตื่นขึ้นคือการเขียนเวลาและวันที่ปัจจุบันไปยังไฟล์บันทึก (n วินาทีนับตั้งแต่กาลเวลา)

จากนั้นtail -1 /var/log/wakeups.logจะให้คุณเป็นครั้งสุดท้าย คุณสามารถลบสิ่งนี้ออกจากเวลาปัจจุบันเพื่อรับวินาทีนับจากการปลุกครั้งล่าสุด


0

ค้นหาการเกิดขึ้นครั้งสุดท้ายของสตริง "PM: restore of devices complete" ใน / var / log / Messages หากเครื่องของคุณยาวเกินไปบันทึกอาจหมุนได้



0

คำตอบที่ขยายขั้นตอน:

grep Awake /var/log/pm-suspend.log | tail -1

นี้จะได้รับสายกับเวลาปลุกครั้งสุดท้าย


0

ฉันคิดว่านี่เป็นวิธีที่แข็งแกร่งมากที่จะทำ:

systemd[1]: Started Run anacron jobs at resume

ค้นหาเมื่อระบบปฏิบัติการเริ่ม anacron จะเกิดขึ้นอย่างไรก็ตามเครื่องเปิดอยู่


0

คำตอบเหล่านี้ไม่เหมาะกับฉัน แต่ฉันพบประโยชน์sleep.targetที่ทำสำหรับตรงนี้:

$ journalctl -n4 -u sleep.target
nov. 17 17:16:37 kaa systemd[1]: Reached target Sleep.
nov. 17 18:46:22 kaa systemd[1]: Stopped target Sleep.
nov. 17 19:27:31 kaa systemd[1]: Reached target Sleep.
nov. 17 19:45:21 kaa systemd[1]: Stopped target Sleep.

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