Fecha de inicio de sesión del usuario y hora de inicio de sesión

25

Quiero obtener el tiempo de inicio de sesión y la fecha de inicio de sesión del usuario, ¿hay algún comando en Unix que proporcione la fecha de inicio de sesión y la hora de inicio de sesión del usuario? Este problema que quiero realizar en Shell-script donde el nombre de usuario acepta del usuario final y después de verificar la disponibilidad del usuario, me gustaría obtener el tiempo de inicio de sesión y la fecha de inicio de sesión de ese usuario en diferentes variables y luego mostrarlo usando el comando 'echo' .

Paresh Mayani
fuente

Respuestas:

32

Para inicios de sesión anteriores:

last "$USER_NAME"

Además, el comando whoenumera los inicios de sesión actuales.

Si está buscando la fecha del último inicio de sesión del usuario, algunos sistemas la proporcionan directamente, por ejemplo, lastlog -u "$USER_NAME"en Linux o lastlogin "$USER_NAME"en FreeBSD. También está disponible en la salida de finger, pero no en una forma fácil de analizar. En cualquier caso, está disponible en la salida de last(en muchas variantes de Unix, last -n 1 "$USER_NAME"muestra el último inicio de sesión; de lo contrario, puede hacerlo last "$USER_NAME" | head -n 1). Tenga en cuenta que el último inicio de sesión puede no corresponder al último cierre de sesión (por ejemplo, un usuario permaneció conectado desde un origen durante mucho tiempo e hizo un inicio de sesión rápido en la red recientemente).

Gilles 'SO- deja de ser malvado'
fuente
Sé que el comando 'quién' proporciona la información de inicio de sesión de todos los usuarios, pero quiero tener "Fecha de inicio de sesión" y "Hora de inicio de sesión", y no quiero la información del usuario para el inicio de sesión anterior sino para un nombre de usuario aceptado por un usuario y quiero obtener la información sobre ese usuario
Paresh Mayani
? El último "$ username" proporciona "Fecha de inicio de sesión" y "Hora de inicio de sesión". La segunda parte de tu oración no está clara para mí, tal vez sea mi inglés, tal vez sea tuyo ... "¿Nombre de usuario aceptado de un usuario [...]"?
echox
@Paresh: Me he quedado sin formas de interpretar tu pregunta. Si mi respuesta aún no ayuda, intente aclarar su pregunta.
Gilles 'SO- deja de ser malvado'
@Paresh: last $USER_NAMEtambién mostrará a los usuarios actuales. username ttyp0 192.168.1.100 Tue Sep 13 13:09 still logged in
Mostrará
@Gilies me deja aclarar lo que quiero realizar en realidad, quiero hacer un script de shell en el que acepte el nombre de usuario como "leer $ username" y luego quiero verificar si el usuario está conectado o no, si sí, entonces quiero obtener su hora de inicio de sesión y fecha de inicio de sesión, gracias por el apoyo
Paresh Mayani
3

En Linux, last -R $username | awk '/still logged in/ {print $3,$4,$5,$6}'no devolverá nada si el usuario no ha iniciado sesión, de lo contrario , aparecerá una lista de fecha / hora para cada sesión activa.

Otros unixes que no conocen la -Ropción de durar (que suprime el nombre de host) necesitarán alguna modificación.

Seth L
fuente