ฉันต้องการทราบช่วงเวลาการใช้งานตั้งแต่การปลุกครั้งสุดท้ายจากโหมดสแตนด์บาย
คำสั่งuptime
จะแสดงความแตกต่างระหว่างเวลาปัจจุบันลบด้วยเวลาเริ่มต้นครั้งล่าสุดเท่านั้น
ฉันต้องการทราบช่วงเวลาการใช้งานตั้งแต่การปลุกครั้งสุดท้ายจากโหมดสแตนด์บาย
คำสั่งuptime
จะแสดงความแตกต่างระหว่างเวลาปัจจุบันลบด้วยเวลาเริ่มต้นครั้งล่าสุดเท่านั้น
คำตอบ:
ใน/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
)
pm-suspend.log
ว่างเปล่า :(
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
สำหรับเดสก์ท็อป / เซิร์ฟเวอร์ที่รัน 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
journalctl -b 0 -o short-iso MESSAGE="PM: Finishing wakeup." | tail -1 | cut -d" " -f1
สำหรับช่วงเวลาของการปลุกครั้งสุดท้ายเท่านั้น
โปรแกรม 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.
แก้ไขการตรวจสอบที่ดีขึ้นของคำตอบขั้นตอน
grep ': Awake' /var/log/pm-suspend.log
แก้ไข haha ขอบคุณสำหรับความคิดเห็น: D
cat
จุด!
ฉันไม่มี pm-suspend.log ในเครื่องของฉัน
สิ่งนี้ใช้ได้กับฉัน:
/usr/bin/pmset -g log | grep Wake | grep "due to" | tail -n1
ยังบอกว่าสิ่งที่ตื่นคอมพิวเตอร์ขึ้นมา :-)
pmset
พบคำสั่งและไม่มีไฟล์ดังกล่าวpmset
และpm-suspend.log
ว่างเปล่า? :(
pm-suspend.log
หายไปและมันใช้งานได้สำหรับฉัน (บน iMac ของฉัน)
คุณใช้อะไรเพื่อเริ่มต้นการสแตนด์บาย
หากคุณสามารถใช้สคริปต์แล้วหลังจากบรรทัด
echo -n "standby" > /proc/acpi/sleep
คุณสามารถมีสาย
echo `date +%s` >> /var/log/wakeups.log
หรือสิ่งที่คล้ายกัน นี่หมายความว่าสิ่งแรกที่เครื่องทำเมื่อตื่นขึ้นคือการเขียนเวลาและวันที่ปัจจุบันไปยังไฟล์บันทึก (n วินาทีนับตั้งแต่กาลเวลา)
จากนั้นtail -1 /var/log/wakeups.log
จะให้คุณเป็นครั้งสุดท้าย คุณสามารถลบสิ่งนี้ออกจากเวลาปัจจุบันเพื่อรับวินาทีนับจากการปลุกครั้งล่าสุด
ค้นหาการเกิดขึ้นครั้งสุดท้ายของสตริง "PM: restore of devices complete" ใน / var / log / Messages หากเครื่องของคุณยาวเกินไปบันทึกอาจหมุนได้
คำตอบที่ขยายขั้นตอน:
grep Awake /var/log/pm-suspend.log | tail -1
นี้จะได้รับสายกับเวลาปลุกครั้งสุดท้าย
ฉันคิดว่านี่เป็นวิธีที่แข็งแกร่งมากที่จะทำ:
systemd[1]: Started Run anacron jobs at resume
ค้นหาเมื่อระบบปฏิบัติการเริ่ม anacron จะเกิดขึ้นอย่างไรก็ตามเครื่องเปิดอยู่
คำตอบเหล่านี้ไม่เหมาะกับฉัน แต่ฉันพบประโยชน์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.
บน fedora โดยใช้ ripgrep
rg Suspend /var/log/messages
ผล:
34338:Jul 26 03:03:46 <hostname> systemd-sleep: Suspending system...