วันที่เข้าสู่ระบบของผู้ใช้และเวลาเข้าสู่ระบบ


25

ฉันต้องการเรียกเวลาเข้าสู่ระบบของผู้ใช้และวันที่เข้าสู่ระบบมีคำสั่งใดใน Unix ที่ระบุวันที่เข้าสู่ระบบของผู้ใช้และเวลาเข้าสู่ระบบของผู้ใช้หรือไม่ ปัญหานี้ฉันต้องการที่จะดำเนินการในเชลล์สคริปต์ที่ชื่อผู้ใช้ยอมรับจากผู้ใช้และหลังจากตรวจสอบความพร้อมใช้งานของผู้ใช้ฉันต้องการที่จะดึงเวลาเข้าสู่ระบบของผู้ใช้และวันที่เข้าสู่ระบบในตัวแปรที่แตกต่างกันแล้วแสดงโดยใช้คำสั่ง 'echo' .

คำตอบ:


32

สำหรับการเข้าสู่ระบบที่ผ่านมา:

last "$USER_NAME"

นอกจากนี้คำสั่งwhoจะแสดงรายการล็อกอินปัจจุบัน

หากคุณกำลังมองหาวันที่ที่เข้าสู่ระบบครั้งล่าสุดของผู้ใช้ระบบบางระบบจะให้ข้อมูลโดยตรงตัวอย่างเช่นlastlog -u "$USER_NAME"บน Linux หรือlastlogin "$USER_NAME"บน FreeBSD มันยังมีอยู่ในผลลัพธ์ของfingerแต่ไม่อยู่ในรูปแบบที่ง่ายต่อการแยกวิเคราะห์ ไม่ว่าในกรณีใดมันมีอยู่ในผลลัพธ์ของlast(ในระบบปฏิบัติการยูนิกซ์หลายรุ่นlast -n 1 "$USER_NAME"แสดงการเข้าสู่ระบบครั้งล่าสุดมิฉะนั้นคุณสามารถทำได้last "$USER_NAME" | head -n 1) โปรดทราบว่าการเข้าสู่ระบบครั้งล่าสุดอาจไม่สอดคล้องกับการออกจากระบบล่าสุด (เช่นผู้ใช้ยังคงเชื่อมต่อจากแหล่งกำเนิดหนึ่งเป็นเวลานานและทำการเข้าสู่ระบบเครือข่ายอย่างรวดเร็วเมื่อเร็ว ๆ นี้)


ฉันรู้ว่าคำสั่ง 'who' จะให้ข้อมูลการเข้าสู่ระบบของผู้ใช้ทุกคน แต่ฉันต้องการที่จะมี "วันที่เข้าสู่ระบบ" และ "เวลาเข้าสู่ระบบ" และฉันไม่ต้องการข้อมูลผู้ใช้สำหรับการเข้าสู่ระบบที่ผ่านมา และต้องการดึงข้อมูลเกี่ยวกับผู้ใช้รายนั้น
Paresh Mayani

? สุดท้าย "$ username" ให้ "วันที่เข้าสู่ระบบ" และ "เวลาเข้าสู่ระบบ" ส่วนที่สองของประโยคของคุณไม่ชัดเจนสำหรับฉันอาจเป็นภาษาอังกฤษของฉันอาจเป็นของคุณ ... "ชื่อผู้ใช้ที่ได้รับการยอมรับจากผู้ใช้ [... ]"?
echox

@Paresh: ฉันหมดความสามารถในการตีความคำถามของคุณ หากคำตอบของฉันยังคงไม่ช่วยลองทำให้คำถามของคุณชัดเจนขึ้น
Gilles 'หยุดชั่วร้าย'

@Paresh: last $USER_NAMEจะแสดงผู้ใช้ปัจจุบันเช่นกัน มันจะแสดงบางอย่างเช่นusername ttyp0 192.168.1.100 Tue Sep 13 13:09 still logged in
Stefan Lasiewski

@Gilies ให้ฉันล้างสิ่งที่ฉันต้องการที่จะดำเนินการจริงฉันต้องการที่จะทำให้เชลล์สคริปต์ที่ฉันยอมรับชื่อผู้ใช้ว่า "อ่าน $ ชื่อผู้ใช้" แล้วฉันต้องการที่จะตรวจสอบว่าผู้ใช้เข้าสู่ระบบหรือไม่ถ้า ใช่แล้วฉันต้องการที่จะดึงเวลาเข้าสู่ระบบและวันที่เข้าสู่ระบบของพวกเขาขอบคุณสำหรับการสนับสนุน
Paresh Mayani

3

บน linux last -R $username | awk '/still logged in/ {print $3,$4,$5,$6}'จะไม่ส่งคืนสิ่งใดหากผู้ใช้ไม่ได้ลงชื่อเข้าใช้มิฉะนั้นรายการวันที่ / เวลาสำหรับแต่ละเซสชันที่ใช้งานอยู่

ยูนิกซ์อื่น ๆ ที่ไม่รู้จัก-Rตัวเลือกสุดท้าย (ซึ่งใช้แทนชื่อโฮสต์) จะต้องมีการแก้ไข

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