Lệnh Last Last: Làm thế nào để hiển thị đăng nhập người dùng mới nhất?


19

Như tôi biết, lastlệnh hiển thị thông tin đăng nhập gần đây của tất cả người dùng. Nhưng PC của tôi (CentOS) đã được sử dụng khoảng một năm và có nhiều người dùng đã đăng nhập. Tôi đã cố gắng sử dụng lastlệnh, nhưng nó chỉ hiển thị từ tháng 6 năm 2013 đến tháng 9 năm 2013.

Câu hỏi của tôi là: làm thế nào tôi có thể hiển thị những người dùng mới nhất đã đăng nhập gần đây, giả sử (tháng 12 năm 2013 đến tháng 1 năm 2014)?


Bạn có thể kiểm tra nếu /var/log/wtmptập tin có mặt và thời gian thay đổi cuối cùng của nó bằng cách sử dụng stat.
mkc

Ngoài ra, lưu ý rằng các mục mới nhất trong đầu ra của lệnh cuối cùng sẽ ở trên cùng.
mkc

Dù sao để làm cho nó xuống dưới cùng?
Thomas

1
Hãy thửlast | tac
mkc

1
chỉ cần làm một chỉ số:stat /var/log/wtmp
mkc

Câu trả lời:


15

lastthường đọc từ một tệp nhật ký /var/log/wtmpvà thường in các mục nhập thành công của người dùng trong quá khứ. Đầu ra là mục nhập người dùng đăng nhập cuối cùng xuất hiện trên đầu trang. Trong trường hợp của bạn có lẽ nó đã đi ra khỏi thông báo vì điều này.

Để kiểm tra tập tin /var/log/wtmpđược viết lần cuối khi nào, bạn có thể sử dụng statlệnh:

stat /var/log/wtmp

Để in đầu ra ngược lại, bạn có thể đặt đầu ra cuối cùng GNU tac(đối diện với con mèo) như sau:

last | tac

16

Bạn cũng có thể sử dụng lệnh lastloglệnh trên Linux. Nó cung cấp cho bạn các điều khiển chi tiết hơn về phạm vi ngày khi xem qua nhật ký đăng nhập của người dùng.

trích đoạn từ trang cuối của người đàn ông

   lastlog - reports the most recent login of all users or of a given user

Thí dụ

Để tìm ra người dùng đã đăng nhập vào hệ thống trong 100 ngày qua.

$ lastlog -b 0 -t 100
Username         Port     From             Latest
sam              pts/0    pegasus          Wed Jan  8 20:32:25 -0500 2014
joe              pts/0    192.168.1.105    Thu Dec 12 12:47:11 -0500 2013

Điều này cho thấy lần cuối những người dùng này đăng nhập vào hệ thống này. Phạm vi thời gian cho thấy 100 ngày qua. Trước hôm nay ( -b 0) và sau 100 ngày trước ( -t 100).

Bạn cũng có thể hiển thị tất cả người dùng bằng cách bỏ qua bất kỳ phạm vi nào và chỉ cần nhìn thấy mọi người dùng đã đăng nhập và lần cuối họ đăng nhập.


0

Bạn có thể thử tập lệnh này:

for user in $( awk -F: '{ print $1}' /etc/passwd)
do
lastlog=$(sudo lsuser -a time_last_login $user | awk -F'=' '{print $NF}')
echo "$user         \c"; perl -le "print scalar localtime($lastlog);"
done

1
Chào mừng bạn đến với Unix.SE. Bạn có thể giải thích những lợi thế của phương pháp này so với các câu trả lời hiện có, nếu có?
Stephen Kitt

tập lệnh này sẽ đưa ra dấu thời gian nhật ký cuối cùng cho tất cả người dùng trong UNIX (AIX)

Cảm ơn bạn về thông tin; vui lòng chỉnh sửa câu trả lời của bạn để đề cập đến điều đó. Cũng lưu ý rằng câu hỏi là về CentOS, không phải AIX.
Stephen Kitt
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.