Data logowania użytkownika i czas logowania

25

Chcę pobrać czas logowania i datę logowania, czy w Uniksie jest jakieś polecenie, które podaje datę i czas logowania? ten problem chcę wykonać w skrypcie powłoki, w którym nazwa użytkownika akceptuje od użytkownika końcowego i po sprawdzeniu dostępności użytkownika, chciałbym pobrać czas logowania i datę logowania tego użytkownika w innej zmiennej, a następnie wyświetlić za pomocą polecenia „echo” .

Paresh Mayani
źródło

Odpowiedzi:

32

W przypadku poprzednich logowań:

last "$USER_NAME"

Ponadto polecenie whowyświetla bieżące dane logowania.

Jeśli szukasz daty ostatniego logowania użytkownika, niektóre systemy podają ją bezpośrednio, na przykład lastlog -u "$USER_NAME"w systemie Linux lub lastlogin "$USER_NAME"FreeBSD. Jest również dostępny w danych wyjściowych finger, ale nie w łatwej do przeanalizowania formie. W każdym razie jest on dostępny na wyjściu last(w wielu wariantach unix, last -n 1 "$USER_NAME"pokazuje ostatnie logowanie; w przeciwnym razie możesz to zrobić last "$USER_NAME" | head -n 1). Pamiętaj, że ostatnie logowanie może nie odpowiadać ostatniemu wylogowaniu (np. Użytkownik przez długi czas pozostawał połączony z jednego źródła i niedawno dokonał szybkiego logowania do sieci).

Gilles „SO- przestań być zły”
źródło
wiem, komenda „kto” dostarcza informacji o logowaniu wszystkich użytkowników, ale chcę mieć „Data logowania” i „Czas logowania” i nie chcę informacji o użytkowniku dla przeszłego logowania, ale dla nazwy użytkownika zaakceptowanej przez użytkownika i chcę pobrać informacje o tym użytkowniku
Paresh Mayani
? ostatnia „$ nazwa użytkownika” zawiera „Data logowania” i „Czas logowania”. Druga część zdania nie jest dla mnie jasna, może to mój angielski, może twój ... „Nazwa użytkownika została zaakceptowana przez użytkownika [...]”?
echox
@Paresh: Skończyły mi się sposoby interpretacji twojego pytania. Jeśli moja odpowiedź nadal nie pomaga, spróbuj wyjaśnić swoje pytanie.
Gilles „SO- przestań być zły”
@Paresh: last $USER_NAMEpokaże także bieżących użytkowników. username ttyp0 192.168.1.100 Tue Sep 13 13:09 still logged in
Pokaże
@Gilies pozwól mi wyjaśnić, co faktycznie chcę wykonać, chcę utworzyć skrypt powłoki, w którym akceptuję nazwę użytkownika jako „czytaj $ nazwa użytkownika”, a następnie chcę sprawdzić, czy użytkownik jest zalogowany, czy nie, jeśli tak, a następnie chcę pobrać ich login i datę logowania, dzięki za wsparcie
Paresh Mayani
3

W last -R $username | awk '/still logged in/ {print $3,$4,$5,$6}'systemie Linux nic nie zwróci, jeśli użytkownik nie jest zalogowany, w przeciwnym razie lista daty / godziny dla każdej aktywnej sesji.

Inne unixy, które nie znają -Ropcji last (która tłumi nazwę hosta) będą wymagały modyfikacji.

Seth L.
źródło