Ngày đăng nhập của người dùng và thời gian đăng nhập


25

Tôi muốn tìm nạp thời gian đăng nhập và ngày đăng nhập của người dùng, có lệnh nào trong Unix cung cấp ngày đăng nhập của Người dùng và thời gian đăng nhập của Người dùng không? vấn đề này tôi muốn thực hiện trong Shell-script nơi tên người dùng chấp nhận từ người dùng cuối và sau khi kiểm tra tính khả dụng của người dùng, tôi muốn lấy thời gian đăng nhập và ngày đăng nhập của người dùng đó trong biến khác và sau đó hiển thị bằng lệnh 'echo' .

Câu trả lời:


32

Đối với thông tin đăng nhập trong quá khứ:

last "$USER_NAME"

Ngoài ra, lệnh wholiệt kê các thông tin đăng nhập hiện tại.

Nếu bạn đang tìm kiếm ngày đăng nhập cuối cùng của người dùng, một số hệ thống sẽ cung cấp trực tiếp, ví dụ như lastlog -u "$USER_NAME"trên Linux hoặc lastlogin "$USER_NAME"trên FreeBSD. Nó cũng có sẵn ở đầu ra finger, nhưng không phải ở dạng dễ phân tích. Trong mọi trường hợp, nó có sẵn trong đầu ra của last(trên nhiều biến thể unix, last -n 1 "$USER_NAME"hiển thị lần đăng nhập cuối cùng; nếu không bạn có thể làm được last "$USER_NAME" | head -n 1). Lưu ý rằng lần đăng nhập cuối cùng có thể không tương ứng với lần đăng xuất cuối cùng (ví dụ: người dùng vẫn kết nối từ một nguồn gốc trong một thời gian dài và thực hiện đăng nhập mạng nhanh gần đây).


Tôi biết lệnh 'who' đang cung cấp thông tin đăng nhập của tất cả người dùng, nhưng tôi muốn có "Ngày đăng nhập" và "Thời gian đăng nhập" và tôi không muốn thông tin người dùng đăng nhập trước đây nhưng cho tên người dùng được chấp nhận từ người dùng và muốn lấy thông tin về người dùng đó
Paresh Mayani

? "tên người dùng $" cuối cùng cung cấp "Ngày đăng nhập" và "Thời gian đăng nhập". Phần thứ hai trong câu của bạn không rõ ràng đối với tôi, có thể là tiếng Anh của tôi, có thể là của bạn ... "Tên người dùng được chấp nhận từ người dùng [...]"?
echox

@Paresh: Tôi đã hết cách để giải thích câu hỏi của bạn. Nếu câu trả lời của tôi vẫn không có ích, hãy thử làm cho câu hỏi của bạn rõ ràng hơn.
Gilles 'SO- ngừng trở nên xấu xa'

@Paresh: last $USER_NAMEcũng sẽ hiển thị người dùng hiện tại. Nó sẽ hiển thị một cái gì đó nhưusername ttyp0 192.168.1.100 Tue Sep 13 13:09 still logged in
Stefan Lasiewski

@Gflower cho tôi biết những gì tôi thực sự muốn thực hiện, tôi muốn tạo một shell-script trong đó tôi chấp nhận tên người dùng là "đọc $ username" và sau đó tôi muốn kiểm tra xem người dùng có đăng nhập hay không, nếu vâng, sau đó tôi muốn lấy thời gian đăng nhập và ngày đăng nhập của họ, thanx để được hỗ trợ
Paresh Mayani

3

Trên linux, last -R $username | awk '/still logged in/ {print $3,$4,$5,$6}'sẽ không trả về gì nếu người dùng chưa đăng nhập, nếu không thì danh sách ngày / giờ cho mỗi phiên hoạt động.

Các unix khác không biết -Rtùy chọn kéo dài (thay thế tên máy chủ) sẽ cần một số sửa đổi.

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.