ฉันกำลังพยายามหากระบวนการที่ตรวจสอบเซสชันผู้ใช้บนเซิร์ฟเวอร์ระยะไกลและเตือนพวกเขาเมื่อพวกเขาไม่ได้ใช้งานนานเกินไปซึ่งด้วยคำสั่ง Linux w
นั้นเหมาะสมอย่างเหมาะสม
ปัญหาคือ - w
ใช้ 3 รูปแบบที่แตกต่างกันเพื่อระบุเวลาว่างของเซสชันและฉันไม่สามารถหารูปแบบได้อย่างถูกต้อง ผลลัพธ์ของw
อาจมีลักษณะเช่นนี้:
11:40:57 up 400 days, 10:46, 13 users, load average: 5.07, 5.10, 4.83
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
john pts/1 XX.XX.XX.XX Wed13 22:29m 0.13s 0.04s ssh master-db
june pts/2 XX.XX.XX.XX Wed13 46.00s 0.67s 0.13s -bash
jenn pts/4 XX.XX.XX.XX 11:13 27:47 4.16s 0.11s -bash
อย่างที่คุณเห็น IDLE มีรูปแบบที่แตกต่างกันสำหรับผู้ใช้แต่ละคน:
- เห็นได้ชัดว่า "AA.BBs" หมายความว่า AA วินาทีและ BB 1 / 100th ของวินาที (46 วินาทีในกรณีของเดือนมิถุนายน) ได้ผ่านไปแล้วนับตั้งแต่เธอเปิดใช้งานล่าสุดบนคอนโซล
- "AA: BBm" อาจหมายความว่าชั่วโมง AA และ BB นาทีผ่านไปตั้งแต่ John ใช้งานล่าสุดในเซสชันของเขา
- "AA: BB" เป็นรูปแบบที่ฉันนึกไม่ออก - เจนนิเฟอร์ไม่ได้อยู่ในเซสชันนานเท่าไหร่แล้ว?