Команда "Останній": Як показати останній логін користувача?


19

Як я знаю, lastкоманда показує останні входи всіма користувачами. Але мій ПК (CentOS) використовується вже майже рік, і тут багато користувачів. Я спробував використати lastкоманду, але вона просто показувала з червня 2013 по вересень 2013 року.

Моє запитання: як я можу показати останніх користувачів, які ввійшли, скажімо, (з грудня 2013 по січень 2014)?


Чи можете ви перевірити, чи /var/log/wtmpфайл присутній та останній час зміни, використовуючи stat.
mkc

Також зауважте, що останні записи у висновку останньої команди знаходяться вгорі.
mkc

все-таки зробити це донизу?
Томас

1
Спробуйтеlast | tac
mkc

1
просто зробіть статистику:stat /var/log/wtmp
mkc

Відповіді:


15

last зазвичай читає з файлу журналу /var/log/wtmp і друкує записи успішних спроб входу, зроблені користувачами в минулому. Вихід такий, що останній запис користувача, який увійшов в систему, з’являється вгорі. У вашому випадку, можливо, це пішло поза увагою через це.

Для того, щоб перевірити, коли файл /var/log/wtmpбув записаний останнім, ви можете скористатися statкомандою:

stat /var/log/wtmp

Для того, щоб надрукувати результат у зворотному порядку, ви можете передавати вихідний сигнал від останнього до GNU tac(навпроти кішки) наступним чином:

last | tac

16

Ви також можете використовувати команду lastlogкоманд в Linux. Це дає вам більш детальний контроль щодо діапазонів дат під час перегляду журналів входу користувачів.

уривок зі сторінки Lastlog man

   lastlog - reports the most recent login of all users or of a given user

Приклад

Щоб дізнатися користувачів, які ввійшли до системи за останні 100 днів.

$ lastlog -b 0 -t 100
Username         Port     From             Latest
sam              pts/0    pegasus          Wed Jan  8 20:32:25 -0500 2014
joe              pts/0    192.168.1.105    Thu Dec 12 12:47:11 -0500 2013

Це показує, що останній раз ці користувачі входили в цю систему. Інтервал часу показує останні 100 днів. До сьогодні ( -b 0) і після 100 днів тому ( -t 100).

Ви також можете показати всім користувачам, опустивши будь-який діапазон і просто побачивши кожен usre, який коли-небудь входив, і останній раз, коли вони входили.


0

Ви можете спробувати цей сценарій:

for user in $( awk -F: '{ print $1}' /etc/passwd)
do
lastlog=$(sudo lsuser -a time_last_login $user | awk -F'=' '{print $NF}')
echo "$user         \c"; perl -le "print scalar localtime($lastlog);"
done

1
Ласкаво просимо до Unix.SE. Чи можете ви пояснити, які переваги має цей підхід перед наявними відповідями, якщо такі є?
Стівен Кітт

цей сценарій дасть останню часову

Дякую за інформацію; будь ласка, відредагуйте свою відповідь, щоб згадати про це. Зауважте також, що питання стосується CentOS, а не AIX.
Стівен Кітт
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.