Дата входа пользователя и время входа

25

Я хочу получить время входа пользователя и дату входа. Есть ли какая-либо команда в Unix, предоставляющая дату входа пользователя и время входа пользователя? эту проблему я хочу выполнить в Shell-скрипте, где имя пользователя принимает от конечного пользователя и после проверки доступности пользователя, я хотел бы получить время входа этого пользователя и дату входа в другую переменную, а затем отобразить с помощью команды 'echo' ,

Пареш Майани
источник

Ответы:

32

Для прошлых входов в систему:

last "$USER_NAME"

Также команда whoперечисляет текущие логины.

Если вы ищете дату последнего входа пользователя в систему, некоторые системы предоставляют ее напрямую, например, lastlog -u "$USER_NAME"в Linux или lastlogin "$USER_NAME"во FreeBSD. Он также доступен в выходных данных finger, но не в удобной для анализа форме. В любом случае, он доступен в выходных данных last(во многих вариантах Unix last -n 1 "$USER_NAME"показывает последний вход в систему; в противном случае вы можете сделать last "$USER_NAME" | head -n 1). Обратите внимание, что последний вход в систему может не соответствовать последнему выходу из системы (например, пользователь долгое время оставался подключенным из одного источника и недавно сделал быстрый сетевой вход).

Жиль "ТАК - перестань быть злым"
источник
я знаю, команда 'who' предоставляет информацию для входа в систему всех пользователей, но я хочу иметь "Login-date" и "Login-time", и я не хочу, чтобы информация о пользователе для прошлого входа в систему, но для имени пользователя, принятого от пользователя и хочу получить информацию об этом пользователе
Paresh Mayani
? последний «$ username» предоставляет «Login-date» и «Login-time». Вторая часть вашего предложения мне не понятна, может, это мой английский, а может, и ваш ... "Имя пользователя принято от пользователя [...]"?
echox
@Paresh: у меня закончились способы интерпретировать ваш вопрос. Если мой ответ по-прежнему не помогает, попробуйте прояснить свой вопрос.
Жиль "ТАК - перестань быть злым"
@Paresh: last $USER_NAMEпокажет текущих пользователей. Это покажет что-то вродеusername ttyp0 192.168.1.100 Tue Sep 13 13:09 still logged in
Stefan Lasiewski
@Gilies позвольте мне прояснить, что я на самом деле хочу выполнить, я хочу создать shell-скрипт, в котором я принимаю имя пользователя как «read $ username», а затем я хочу проверить, вошел ли пользователь в систему или нет, если да, тогда я хочу получить их время входа и дату входа, спасибо за поддержку
Paresh Mayani
3

В Linux last -R $username | awk '/still logged in/ {print $3,$4,$5,$6}'ничего не будет возвращено, если пользователь не вошел в систему, в противном случае список даты / времени для каждого активного сеанса.

Другие юниксы, которые не знают -Rопцию last (которая подавляет имя хоста), нуждаются в некоторой модификации.

Сет Л
источник