Anmeldedatum und Anmeldezeit des Benutzers

25

Ich möchte die Anmeldezeit und das Anmeldedatum des Benutzers abrufen. Gibt es einen Befehl in Unix, der das Anmeldedatum und die Anmeldezeit des Benutzers angibt? Dieses Problem möchte ich in einem Shell-Skript ausführen, in dem der Benutzername vom Endbenutzer akzeptiert wird. Nachdem ich die Verfügbarkeit des Benutzers überprüft habe, möchte ich die Anmeldezeit und das Anmeldedatum des Benutzers in einer anderen Variablen abrufen und dann mit dem Befehl 'echo' anzeigen .

Paresh Mayani
quelle

Antworten:

32

Für frühere Anmeldungen:

last "$USER_NAME"

Außerdem wholistet der Befehl die aktuellen Anmeldungen auf.

Wenn Sie nach dem Datum der letzten Anmeldung des Benutzers suchen, stellen einige Systeme dies direkt zur Verfügung, zum Beispiel lastlog -u "$USER_NAME"unter Linux oder lastlogin "$USER_NAME"FreeBSD. Es ist auch in der Ausgabe von verfügbar finger, jedoch nicht in einer leicht zu analysierenden Form. In jedem Fall ist es in der Ausgabe von verfügbar last(bei vielen Unix-Varianten wird last -n 1 "$USER_NAME"der letzte Login angezeigt; ansonsten können Sie dies tun last "$USER_NAME" | head -n 1). Beachten Sie, dass die letzte Anmeldung möglicherweise nicht mit der letzten Abmeldung übereinstimmt (z. B. ein Benutzer blieb lange Zeit von einem Ursprung verbunden und hat sich kürzlich schnell im Netzwerk angemeldet).

Gilles 'SO - hör auf böse zu sein'
quelle
Ich weiß, dass der Befehl 'who' die Anmeldeinformationen aller Benutzer liefert, aber ich möchte "Anmeldedatum" und "Anmeldezeit" haben, und ich möchte nicht, dass die Benutzerinformationen für die frühere Anmeldung verwendet werden, sondern für einen von einem Benutzer akzeptierten Benutzernamen und möchten die Informationen über diesen Benutzer
abrufen
? letzter "$ username" liefert "Login-Datum" und "Login-Zeit". Der zweite Teil Ihres Satzes ist für mich nicht klar, vielleicht ist es mein Englisch, vielleicht ist es deins ... "Benutzername von einem Benutzer akzeptiert [...]"?
Echox
@Paresh: Ich habe keine Möglichkeiten mehr, deine Frage zu interpretieren. Wenn meine Antwort immer noch nicht hilft, versuchen Sie, Ihre Frage klarer zu machen.
Gilles 'SO - hör auf böse zu sein'
@Paresh: Zeigt last $USER_NAMEauch aktuelle Benutzer an. Es zeigt so etwas wieusername ttyp0 192.168.1.100 Tue Sep 13 13:09 still logged in
Stefan Lasiewski
@ Gilies lässt mich klar machen, was ich eigentlich ausführen möchte, ich möchte ein Shell-Skript erstellen, in dem ich den Benutzernamen als "read $ username" akzeptiere, und dann möchte ich überprüfen, ob der Benutzer angemeldet ist oder nicht, wenn ja, dann möchte ich ihre Login-Zeit und Login-Datum abrufen, danke für die Unterstützung
Paresh Mayani
3

Unter Linux last -R $username | awk '/still logged in/ {print $3,$4,$5,$6}'wird nichts zurückgegeben, wenn der Benutzer nicht angemeldet ist. Andernfalls wird für jede aktive Sitzung eine Datums- / Uhrzeitliste erstellt.

Andere Unixe, die die -ROption last nicht kennen (wodurch der Hostname unterdrückt wird), müssen geändert werden.

Seth L
quelle