Відповіді:
Журнали входу в Linux в стилі redhat називаються wtmp( man wtmp), зберігаються /var/log/за замовчуванням, і ви можете отримати їх за допомогою utmpdump(на RHEL6).
[root@server ~]# utmpdump /var/log/wtmp* | awk '$4~"root" {print}'
Utmp dump of /var/log/wtmp
[7] [01320] [ts/0] [root ] [pts/0 ] [192.168.1.101 ] [192.168.1.101 ] [Tue Sep 24 00:31:47 2013 UTC]
[7] [01817] [ts/3] [root ] [pts/3 ] [192.168.1.101 ] [192.168.1.101 ] [Tue Sep 24 00:38:22 2013 UTC]
[7] [01690] [ts/0] [root ] [pts/0 ] [192.168.1.101 ] [192.168.1.101 ] [Tue Sep 24 00:59:04 2013 UTC]
[7] [23641] [ts/0] [root ] [pts/0 ] [192.168.1.101 ] [192.168.1.101 ] [Wed Sep 25 19:12:44 2013 UTC]
[7] [03020] [ts/0] [root ] [pts/0 ] [192.168.1.100 ] [192.168.1.100 ] [Fri Sep 27 21:33:40 2013 UTC]
...
Здається, lastможна використовувати для досягнення того, що ви намагаєтеся зробити. Вам потрібно додати дату до останньої команди, щоб отримати інформацію.
last | while read line; do date=`date -d "$(echo $line | awk '{ print $5" "$6" "$7 }')" +%s`; [[ $date -ge `date -d "Aug 25 00:00" +%s` && $date -le `date -d "Aug 28 00:00" +%s` ]] && echo $line; done
Однак якщо ви хочете знайти інформацію про певного користувача, ви можете змінити останню команду як last usernameі потім whileпередати цикл їй. Це дасть вам інформацію про інформацію про вхід конкретного користувача за останній рік.
Я перевірив вищевказану команду, і вона прекрасно працює в моїй системі. Я взяв звідси вищезгадану команду .
Ви можете змінити дату в команді відповідно до ваших вимог.
lastкоманду - але ви повинні робити більше досліджень , ніж це, і в будь-якому випадку, ви на самому ділі не вказані , чомуlastкоманда не є корисною. також визначте "увійшов". Ви хочете відстежувати вхід консолі? SSH логіни? Emacs забороняють,telnetлогіни? або просто щось автентичне з PAM? бути конкретним .