ฉันจะแยกประวัติเข้าสู่ระบบได้อย่างไร


94

ฉันจำเป็นต้องรู้ประวัติเข้าสู่ระบบสำหรับผู้ใช้ที่ระบุ (เช่นเวลาเข้าสู่ระบบและออกจากระบบ) ฉันจะแยกประวัตินี้สำหรับช่วงวันที่ที่ระบุใน Linux ได้อย่างไร

คำตอบ:


133

คุณสามารถลองlastคำสั่ง:

last john 

มันพิมพ์ประวัติเข้าสู่ระบบ / ออกของผู้ใช้จอห์น ในขณะที่ทำงานเพียง

last

พิมพ์ประวัติเข้าสู่ระบบ / ออกของผู้ใช้ทั้งหมด


5
สิ่งนี้จะคืนค่าสำหรับเดือนปัจจุบันใน Linux distros ส่วนใหญ่เท่านั้น
ewwhite

42

หากคุณต้องการย้อนกลับไปในประวัติศาสตร์มากกว่าหนึ่งเดือนคุณสามารถอ่าน/var/log/wtmp.1ไฟล์ด้วยlastคำสั่ง

last -f wtmp.1 johnjohnจะแสดงประวัติความเป็นมาของเดือนก่อนหน้าการเข้าสู่ระบบสำหรับผู้ใช้

เอาต์พุตบันทึกล่าสุดไม่หนักเกินไปและง่ายต่อการวิเคราะห์ดังนั้นฉันอาจจะไพพ์เอาต์พุตเป็น grep เพื่อค้นหารูปแบบวันที่ที่เฉพาะเจาะจง

last john | grep -E 'Aug (2[0-9]|30) 'เพื่อแสดง 20-30 สิงหาคม หรือสิ่งที่ชอบ:

last -f /var/log/wtmp.1 john | grep -E 'Jul (1[0-9]|2[0-9]|30) 'ที่จะได้รับ 10-30 johnกรกฎาคมสำหรับผู้ใช้


21

จะดึงประวัติการเข้าสู่ระบบสำหรับช่วงวันที่ที่ระบุใน Linux ได้อย่างไร

ตัวอย่างในการแสดงรายชื่อผู้ใช้ทั้งหมดที่เข้าสู่ระบบจาก 25 ถึง 28 / สิงหาคม:

last | while read line
do
    date=`date -d "$(echo $line | awk '{ print $5" "$6" "$7 }')" +%s`
    [[ $date -ge `date -d "Aug 25 00:00" +%s` && $date -le `date -d "Aug 28 00:00" +%s` ]] && echo $line
done
  • awk '{ print $5" "$6" "$7 }'เพื่อแยกเวลาวันที่ที่คอลัมน์ที่เกี่ยวข้องจากlastเอาท์พุท
  • +%s เพื่อแปลงวันที่และเวลาเป็นเวลา
  • -ge ยืนมากกว่าหรือเท่ากับ
  • -le ยืนน้อยกว่าหรือเท่ากับ

last <username>นอกจากนี้คุณยังสามารถทำมันได้สำหรับผู้ใช้ที่เฉพาะเจาะจงกับ


1
นั่นคือการแสดงออกอันยิ่งใหญ่ที่น่าเกลียด grep จะไม่สะอาดกว่านี้เนื่องจากlastเอาต์พุตสามารถอ่านได้สวยใช่ไหม
ewwhite

3
คุณสามารถgrepจาก "15 สิงหาคม 09:00" ถึง "25 สิงหาคม 21:00"
quanta

1
OP ไม่ขอช่วงเวลา
ewwhite

1
@ ทั้งๆที่การแสดงออกดูสวยงามสำหรับฉันหากคุณไม่ชอบรูปแบบของ bash syntax นี่อาจไม่ใช่เว็บไซต์สำหรับคุณ
ekerner

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